选择tr中的特定tr和特定td

时间:2013-01-25 06:04:43

标签: javascript jquery

我已经能够选择我想要的特定行但是我无法从那些tr中选择特定的td。

我用它来选择行:

$('#time-slot tr:not(:first, :last)')

然后在那些选定的行中我试图忽略第一个和最后一个td,但它不起作用。我使用了与上面类似的方法

$('#time-slot tr:not(:first, :last) td:not(:first, :last)')

任何想法我应该如何解决这个问题。顺便说一下,我试图点击并拖动鼠标,用用户定义的颜色绘制单元格。

3 个答案:

答案 0 :(得分:1)

我更喜欢使用较少的字符串选择器和更多jQuery方法,以及使用:first-child:last-child选择器来解决您的问题:

$("#time-slot").find("tr").not(":first-child, :last-child").find("td").not(":first-child, :last-child").addClass("active");

http://jsfiddle.net/7b4Ms/

根据您的期望,您没有很好地解释,这可能是也可能不是您想要的。这样做是选择不是第一个和最后一个的所有tr个元素。在匹配的tr元素中,它会选择不是第一个和最后一个的所有td个元素。所以基本上,它不会选择table中的外部单元格环。

答案 1 :(得分:0)

完全同意Ian,我更喜欢使用.children()而不是.find()。因为如果你有嵌套表会导致问题。

$("#time-slot").find("tr").not(":first-child, :last-child").find("td").not(":first-child, :last-child").addClass("active");

更改为:

$("#time-slot").children("tr").not(":first-child, :last-child").children("td").not(":first-child, :last-child").addClass("active");

答案 2 :(得分:0)

试试这个(仅使用css选择器):

$("#time-slot tr:not(:first,:last) td:not(:first-child,:last-child)").addClass("active");

<强> Sample