我正在尝试定位其中包含子表行元素的表中的最后一个父表行。我已经尝试过以下jQuery来定位:last伪,然而,就像预期的那样,它是针对目标父表中的绝对最后一个表行元素。
$('table[id*="dgRegistrantList"]').find('tr:last').addClass('EventRegLastAttendee')
我已经将jsFiddle与我试图用jQuery作为目标的HTML块放在一起,我希望它有用! http://jsfiddle.net/jodriscoll/LZA7e/
Green table-row是我想要定位的那一行,但是,Red中突出显示的那个是接收该类的明显行。
此系统可以根据此“步骤”之前的用户选择生成表行的变体。有关我正在使用的完整示例,请访问:http://secure.massgeneral.org/event-form(我正在使用第2步)。
请注意,我正在使用的HTML是由我作为客户的CMS软件生成的,无法更改。因此,这个jQuery练习的目的。
答案 0 :(得分:3)
如果所有父<tr>
元素都有类BBListOddRowStyle
或BBListEvenRowStyle
,您可以这样做:
$('table[id*="dgRegistrantList"]').find('tr[class*=RowStyle]:last')
.addClass('EventRegLastAttendee')
<强> DEMO 强>
如果没有,您可以使用.children()
两次以确保定位正确的目标:
$('table[id*="dgRegistrantList"]').children('tbody')
.children('tr:last').addClass('EventRegLastAttendee')
<强> DEMO 强>
答案 1 :(得分:1)
使用此代码定位最后一行:
$('table[id*="dgRegistrantList"]').find('tr[class^=BBList][class$=RowStyle]:last').addClass('EventRegLastAttendee')
<强>解释强>:
tr //it will look for tr
[class^=BBList] //which class starts with BBList
[class$=RowStyle] //and ends with RowStyle (so we're leaving Odd and Even inside and not recognized)
:last //the last of those element, if you remove it you select all of them
答案 2 :(得分:1)
.children()你想做什么?
$('table[id*="dgRegistrantList"]').children('tr:last').addClass('EventRegLastAttendee');
.children()仅降低一个dom级别,而.find()将尽可能降低。
答案 3 :(得分:1)
不要使用find
。它会查看任何深度,它可能与非预期的子表匹配。也许这对你的榜样有用,但你不想养成坏习惯。另外,find
比目标方法更昂贵。
您需要更有针对性的方法:
var targetTd = $('table[id*="dgRegistrantList"]').children('tbody').children('tr:last').find('table:first').children('tbody').children('td:last');
答案 4 :(得分:1)
使用此代码将父级tr定位到最后一行
$('table[id*="dgRegistrantList"]').find('tr[class^=BBList]:last').addClass('EventRegLastAttendee');