我有一些具有属性的 div:rowNumber
。
其中之一有一个属性:isOpen=1
。
其后的所有其他都有 isOpen=0
。
例如:
<div class="statusCell" isOpen="0" rowNumber="1">
我想获取在 isOpen=1 的 div 之后找到的所有具有 statusCell
类的 div,并将它们的 rowNumber 减一。
我需要做这样的事情:
$('.statusCell[isOpen=1]').nextAll('.statusCell[isOpen=0]').each(function() {
var rowNumber = $(this).attr("rowNumber");
var newRowNumber = parseInt(rowNumber, 10) - 1;
$(this).attr('rowNumber', newRowNumber.toString());
});
但它不起作用,因为:
$('.statusCell[isOpen=1]').nextAll('.statusCell[isOpen=0]').length
为零..
示例代码是:
<td class="DesignedTableTD">
<div class="statusCell" style="cursor:pointer;" isOpen="0" rowNumber= "1">
<p style="display:inline;" class="yellow" title="fd">
<img alt="Active" src="@Url.Content("~/Images/play.png")" class="help"/>
</p>▽
</div>
</td>
感谢任何帮助!
最佳答案
nextAll
选择所选元素的下一个匹配同级元素,但此处情况并非如此,您可以使用 index()
方法:
var $statusCell = $('.statusCell[isOpen]'),
$open = $statusCell.filter('[isOpen=1]'),
i = $statusCell.index($open);
$statusCell.filter(':gt('+i+')').foo();
// Decreasing attributes' value
// $statusCell.slice(++i).attr('rowNumber', function(_, value) {
// return +value - 1;
// });
请注意,isOpen
和 rowNumber
不是有效属性,如果页面的 Doctype 是 HTML5,则可以使用 data-*
属性代替.
关于javascript - 获取一个div之后的所有div并将其属性减一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770106/