我正在尝试编写一个简单的Jquery,其中脚本将检查表格单元格是否包含一系列数字。
我不确定如何做到这一点,因为如果你要做这样的事情:
var num_range = ">1";
$("td:contains(" + num_range + ")").css('background-color', '#000');
...脚本只检测td是否包含确切的文本“> 1”,而不是我所追求的,它检测是否有任何tds包含任何大于1的数字。(然后任何样式背景)
感谢您的帮助,我是Javascript / Jquery新手!
答案 0 :(得分:4)
没有本机jQuery选择器。如果你想要或只是使用,你可以写一个:
$("td").each(function() {
if (parseInt($(this).text()) > 1) {
$(this).css("background", "#000");
}
});
如果您想创建自己的选择器:
$.extend($.expr[":"], {
expr: (function() {
var op = {
'=': function(n1, n2) { return n1 == n2; },
'!=': function(n1, n2) { return n1 != n2; },
'>': function(n1, n2) { return n1 > n2; },
'>=': function(n1, n2) { return n1 >= n2; },
'<': function(n1, n2) { return n1 < n2; },
'<=': function(n1, n2) { return n1 <= n2; }
};
var ops = [];
for (p in op) {
ops.push(p);
}
var r = new RegExp("^\\s*(" + ops.join("|") + ")\\s*(-?\\d+(?:\\.\\d+)?)\\s*$");
return function(elem, i, match) {
var m = r.exec(match[3]);
return m && op[m[1]](parseFloat($(elem).text()), parseFloat(m[2]));
};
})()
});
然后你可以这样做:
$("td:expr(>5)").css("background", "yellow");
答案 1 :(得分:1)
jQuery中没有内置选择器可以执行此操作。
您可以使用.filter
手动为元素提供资金。 (通过调用过滤器中的.text
)