大佬教程收集整理的这篇文章主要介绍了jQuery .data()不更新DOM,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<ul id="foo"> <li data-my-key="12345">ABCDEF</li> </ul>
运行下面的JavaScript,我得到一些我不期望的结果:
$('#foo li:first').data('my-key') // Returns 12345 - Expected $('#foo lI[data-my-key="12345"]') // Returns the expected <li> $('#foo li:first').data('my-key','54321') $('#foo li:first').data('my-key') // Returns 54321 - Expected $('#foo lI[data-my-key="54321"]') // Returns an empty array - Not expected
进一步调查后,我注意到,在使用.data()函数(在Chrome 21.0.1180.81,Firebug 1.10.3和Firefox 14.0.1中使用“Inspect Element”进行验证)设置新值后,DOM未被修改.
这个行为从我的预期意外,但这是jQuery数据的预期方式吗?如果是这样,用jQuery更新data- *属性的适当方法是什么?只需使用attr()函数?
使用.data(..)可以更改您不能选择的元素属性,而不使用过滤器.
如果你想要获得一些属性的所有元素,你可以这样做(使用filter(...)
):
$('#foo li').filter(function(indeX) { return $(this).data('my-key') === 54321; }); //returns all `#foo li` with data[my-key] === 54321
查看更多信息:.prop() vs .attr()
以上是大佬教程为你收集整理的jQuery .data()不更新DOM全部内容,希望文章能够帮你解决jQuery .data()不更新DOM所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。