jQuery选择器属性范围

jQuery selector attribute range

本文关键字:范围 属性 选择器 jQuery      更新时间:2023-09-26

我有一个包含一些行和颜色的表,每个行和颜色都有一个属性:

<tr attr-y="1"><td attr-x="1">...</td><td attr-x="2">...</td>...</tr>
<tr attr-y="2"><td attr-x="1">...</td><td attr-x="2">...</td>...</tr>
....

现在我想编辑其中的一些单元格,并尝试按范围选择它们,例如:(attr-y在3和5之间,attr-x = 4)

$('#mytable tr[attr-y>3][attr-y<5] td[attr-x=4]')

但是这给了我该列中的所有单元格。

我可以直接选择单元格(使用选择器语句)吗?

您可以使用.filter()执行更复杂的查询:

$('#mytable td').filter(function() {
    return ($(this).parent().attr('attr-y') > 3 && $(this).parent().attr('attr-y') < 5)
        && ($(this).attr('attr-x') == 4)
})
.css('background-color', 'aqua');

示例:http://jsfiddle.net/8wH4M/1/