我有一个表,其中包含逗号分隔的数字列表,如下所示:<td>72,76,81</td>
。我正在尝试选择表格单元格don't包含特定的数字。该选择器有效:
$("td:not(:contains('76'))", $table)
问题是可能存在包含“576”或“761”等的行。
为了解决这个问题,我决定放置一个<span>
围绕每个数字,现在是:<td><span>72</span>,<span>76</span>,<span>81</span></td>
。我的选择器现在是:
$("td:not(:contains('<span>76</span>'))", $table)
当我在 Firebug 中调试此选择器时,它返回一些 HTML 源代码中实际不存在的 span 标记,而不是正确的<td>
s.
基本上,把 '<span>
' 在里面:contains()
字符串正在破坏选择器。有没有类似的选择器:contains()
当 HTML 传递给它时,它会正常工作吗?或者有什么方法可以通过里面的整个字符串来选择<span>
?
顺便说一句,这个网站使用的是 jquery 1.3.2。
如果你想坚持<span>
s,即使使用 jQuery 1.3.2,这也有效:
var $tds = $("table td").filter(function() {
return !$(this).find('span').filter(function () {
return $(this).text() === '76';
}).length;
});
http://jsfiddle.net/mattball/PFk8H/ http://jsfiddle.net/mattball/PFk8H/
另一方面,如果您想回到旧的标记,实际上非常容易:
var $tds = $("table td").filter(function() {
return !$(this).text().match(/\b76\b/);
});
http://jsfiddle.net/mattball/L6AFz/ http://jsfiddle.net/mattball/L6AFz/
要在正则表达式中使用变量,请使用new RegExp(string)构造函数语法 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/regexp:
var n = 76,
re = new RegExp("\\b" + n + "\\b");
var $tds = $("table td").filter(function() {
return !$(this).text().match(re);
});
http://jsfiddle.net/mattball/hKQH7/ http://jsfiddle.net/mattball/hKQH7/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)