刚刚从 jQuery 1.3.2 升级到 1.8.2,发现在 1.3.2 中工作的几个功能不再工作。其中大部分我已经修复,但坚持这个:
我需要根据表格单元格中的前几个字符进行搜索(“开头为”搜索),但此代码在最新版本的 jQuery 中不再适用:
var matchingElements = $("#tblSelect1>tbody>tr>td:first-child[innerText^='" + text + "']");
我怀疑这与以下事实有关,即过去像属性一样工作的一些东西现在变成了属性 - innerText 是一个属性(我认为),所以它可能与属性开始 - 选择器符号不兼容:
[attr^='value']
我不想使用
:contains
因为我只想要其 innerText 以搜索 text
开头的元素想法?谢谢!
最佳答案
您可以使用 filter
方法。 innerText
是一个非标准属性,不适用于 Firefox,为了支持所有主要浏览器,您应该检查这两个属性,或者使用跨浏览器的 jQuery text
方法。
var $matchingElements = $("#tblSelect1 > tbody > tr > td").filter(function(){
var c = this.textContent || this.innerText;
return c.indexOf(text) === 0
});
关于jQuery -innerText 以选择器开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14165917/