$(this).text() vs $(this).attr("innerText") in Chr
$(this).text() vs $(this).attr("innerText") in Chrome
我是jQuery和javascript的核心,所以这一定是一个初学者的问题。
这行对我有效,foo不是空的:
var foo = $("#hello").find("option").filter (function(){return $(this).text() == "BAR";});
同一地点的这个没有(foo未定义(:
var foo = $("#hello").find("option").filter (function(){return $(this).attr("innerText") == "BAR";});
唯一的区别是使用.text((和.attr("innerText"(。为什么后者对我不起作用?
.attr()
查找附加到DOM元素的HTML属性,而不是查找DOM元素的JavaScript属性,如innerHTML
或innerText
。要找到这样的属性,您需要访问选择器返回的jQuery对象中的DOM元素,或者在本例中访问this
引用本身,例如:
var foo = $('#hello').find("option").filter (function(){return this.innerText == “BAR";});
正如其他人所指出的,这是不建议的,因为它可能会导致意外行为,而且它也不兼容跨浏览器。只需使用.text()
即可。
.attr()
正在节点上查找属性innerText
。它会给你undefined
,除非你的节点看起来像:
<div innerText="test"></div>
也许你把自己和.prop('innerText')
混合在一起,得到了节点的属性innerText
。这与.text()
相同,只是由于jQuery计数器兼容性问题,.text()
更安全。。
如果您对jQuery如何获取文本感兴趣,无论您是哪种浏览器,这里都有相关的代码
相关文章:
- $(this).prop('property') vs. this.property
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 重复“;function(){}.调用(this)"在Uglified JS中
- 这条线是什么意思"this.parentNode.firstChild.nodeName”;在jQuery H
- jqueryui:"类型错误:this.menu.element未定义"
- 为什么获胜't This Vuejs“;Hello World"示例在我的电脑上渲染
- "this.collection.each不是函数;.应该'它不是简单地说“;每个”;
- 为什么不't this replace()替换"我的“;
- 我的onsubmit=“;return onNewUserRegistrationCheck(this)"仍然
- <a href="javascript:foo(this)">通过Window,我想要标记
- 主干——哪个“这个”;是“this"
- How do i formulate "if this.children.has.not.class"
- 鼠标事件监听器&“this"
- <textarea onclick=“;this.value;this.select()">?这是什么
- "类型错误:this.options为null"在OpenLayers.Protocol.HTTP中
- 为什么是全球性的"this.function";如果没有";这个"