我这样做:
$("td.myTD").each( function(){
var rowspan = $(this).attr("rowspan");
rowspan = parseInt(rowspan) + 1;
$(this).attr("rowspan", rowspan);
});
Run Code Online (Sandbox Code Playgroud)
(使用类myTD将所有td的行数增加1).是否有更短的写作方式?
在一个完美的世界里,我想写下这样的东西:
$("td.myTD").attr("rowspan", someMagicHereToGetTheAttrValueForEachFoundElement() + 1);
Run Code Online (Sandbox Code Playgroud)
可能吗?
pal*_*aѕн 14
你可以这样做.attr( attributeName, function(index, attr) ):
$("td.myTD").attr("rowspan", function(index, attr){
return parseInt(attr, 10) + 1;
});
Run Code Online (Sandbox Code Playgroud)
这里,上面的代码使用一个函数,它将集合中元素的索引位置和旧属性值作为参数.然后该函数根据旧属性返回一个新的属性值.在一次修改多个元素的属性时,使用函数来计算属性值特别有用.
有关更多信息,请参阅attr函数(index,attr)文档.
.attr() 可以使用一个从旧的值返回新值的函数:
$("td.myTD").attr("rowspan", function(i, old) { return +old+1 });
Run Code Online (Sandbox Code Playgroud)