...
<tr>
<td>222</td>
</tr>
<tr>
<td>333 222</td>
</tr>
...
而且我對選擇這個代碼:jQuery選擇幫助
$("#TableName tr td:contains('222')");
問題:我需要選擇的HTML是「222」只有細胞。
我嘗試使用$("#TableName td tr[html=222]")
但不起作用。
...
<tr>
<td>222</td>
</tr>
<tr>
<td>333 222</td>
</tr>
...
而且我對選擇這個代碼:jQuery選擇幫助
$("#TableName tr td:contains('222')");
問題:我需要選擇的HTML是「222」只有細胞。
我嘗試使用$("#TableName td tr[html=222]")
但不起作用。
您可以use .filter()
instead做一個完全匹配。
var result = $("#TableName tr td").filter(function() {
return $.text([this]) === "222";
});
它使用$.text()
到<td>
的文本值與"222"
比較。這只是一個更快的方式做$(this).text()
。給你同樣的結果。 (請注意,您需要通過this
數組中的[this]
。)
時,有一個比賽,該元素則返回到生成的jQuery對象。
如果在<td>
中有任何引導或尾隨空白的可能性,那麼可以修剪那個with $.trim()
。
return $.trim($.text([this])) === "222";
編輯:,如果你願意,你可以創建自己的選擇,這將完成同樣的任務:
$.extend($.expr[':'], {
textIs: function(elem, i, attr) {
return ($.trim($.text([elem])) === attr[3]);
}
});
var result = $("#TableName tr td:textIs(222)")
我(在http://api.jquery.com/contains-selector/在評論)發現這樣選擇的這個實行
$.expr[":"].econtains = function(obj, index, meta, stack){
return (obj.textContent || obj.innerText || $(obj).text() || "").toLowerCase() == meta[3].toLowerCase();
}
例如:
$("div:econtains('john')").css({ color: "#F00" });