三种读取选定元素内容的方法

读取、修改元素的HTML结构或者元素的文本内容是常见的DOM操作,jQuery针对这样的处理提供了两个便捷的方法:.html()与.text()。html()方法是获取集合中第一个匹配元素的HTML内容或者设置每一个匹配元素的HTML内容,具体有三种方法:

  1. html()不传入值,就是获取集合中第一个匹配元素的HTML内容;
  2. html(htmlString)设置每一个匹配元素的HTML内容;
  3. html(function(index,oldhtml))用来返回设置HTML内容的一个函数。
    需要注意的是.html()方法内部使用的是DOM的innerHTML属性来处理的,所以在设置与获取上要注意一个最重要的问题:这个操作是针对整个HTML内容的。
    在这里插入图片描述
    显示出html方法获取到的内容;.html()是整个html文档结构。
    text()方法:
    text()方法得到匹配的元素集合中的每一个元素的文本内容结合,包括他们的后代,或设置匹配元素聚合中每个元素的文本内容为指定内容。具体也有三种方法:
  4. text()得到匹配的元素集合中每个元素的合并文本,包括他们的后代;
  5. text(textString)用于设置匹配元素内容的文本;
  6. text(function(index,text))用来返回设置文本内容的一个函数。
    需要注意的是text()方法的结果返回一个字符串,包含所有匹配的元素的合并文本。
    在这里插入图片描述
    显示出text方法获取到的内容;.text()是文本内容的合集。
    html()与text()的异同:
    html与.text的操作方法是一样的,只是具体针对的处理对象不同;html()方法处理的是元素内容,而text()方法处理的是文本内容。html()方法只能使用在HTML文档中,text()方法在XML和HTML都能使用。
    如果处理的对象只有一个子文本节点,那么html方法处理的结果与text方法处理的结果是一样的。还有个特殊情况,就是火狐不支持innerText属性,用了类似的textContent属性,.text()方法综合了两个属性的支持,所以可以兼容所有浏览器。
    jQuery中还有一个方法也是获取匹配的元素集合中第一个元素的,它就是val()方法;但是val()方法主要用于处理表单元素的值,比如input、select、textarea。具体也是三种方法:
  7. val()方法没有参数,获取匹配的元素集合中第一个元素的当前值;
  8. val(value),设置匹配的元素集合中每个元素的值;
  9. val(function),一个用来返回设置值的函数。
    需要注意的是通过.val()方法处理select元素,当没有选择项被选中的时候它返回null,.val()方法都用来设置表单的字段的值。如果select元素有multiple(多选)属性,并且至少有一个选择项被选中,那么.val()方法将返回一个数组,这个数组包含每个选中选择项的值。
    在这里插入图片描述
    .html(),.text()和.val()三种方法的差异总结:
    首先.html(),.text()和.val()三种方法都是用来读取选定元素的内容的;只不过.html是用来读取元素的html内容(包括html标签),.text()用来读取元素的纯文本内容,包括其后代元素,val()是用来读取表单元素的“value”值。
    其中.html()和.text()不能使用在表单元素上,而.val()只能使用在表单元素上;另外,.html()方法使用在多个元素上,只读取一个元素;.val()和.html()相同,如果应用在多个元素上时,只能读取第一个表单有元素的“value”值,但是.text()和他们不一样,如果. Text()应用在多个元素上时,将会读取所有元素的文本内容。
    其次.html(htmlString),.text(textString),和.val(value)三种方法都是用来替换选中元素的内容的,如果这三个方法同时运用在多个元素上,那么将会替换掉所有选中元素的内容。
    最后.html(),.text()和.val()都可以使用回调函数的返回值来动态的改变对个元素的内容。

猜你喜欢

转载自blog.csdn.net/weixin_44560796/article/details/91353640