需求:点击事件需要切换内容,标题也需要随着一起改变
问题:使用 $("#div").val("改名"); 赋值失败
使用 document.getElementById('div').innerHTML='改名'; 赋值成功
对比来看应该是jQuery的问题,然后以这个去搜了问题
解决:$("#div").html("改名"); 赋值成功
$("#div").text("改名"); 赋值成功
参考文章:innerHTML JQuery:innerHtml在jQuery中使用无效果
innerHTML在JQuery中使用的话是无效果的,JQuery提供了三种方法实现指定标签赋内容:.html(),.val(),.text()。
三种方法区别具体:
- .html(),读取和修改元素的HTML标签 对应js中的innerHTML。
.html()是用来读取元素的HTML内容(包括其Html标签), .html()方法使用在多个元素上时,只读取第一个元素:(这句话实测是一个标签使用了多个.html()时,只有第一个.html()有效,假如一个标签同时使用了.html(),.text()也是第一个有效)
- .text(),读取或修改元素的纯文本内容 对应js中的innerText
text()用来读取元素的纯文本内容,包括其后代元素;.text()方法不能使用在表单元素上
- .val(),读取或修改表单元素的value值 对应js中的value
.val()是用来读取表单元素的"value"值,.val()只能使用在表单元素上
关于三者的区别
1. .val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。
2 .html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。