5

刚从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

想法?谢谢!

4

1 回答 1

4

你可以使用filter方法。innerText是一个非标准属性,不适用于 Firefox,为了支持所有主要浏览器,您应该检查这两个属性,或者使用text跨浏览器的 jQuery 方法。

var $matchingElements = $("#tblSelect1 > tbody > tr > td").filter(function(){
      var c = this.textContent || this.innerText;
      return c.indexOf(text) === 0
});
于 2013-01-04T22:22:35.660 回答