对于每个.chart_edit_toolbar
及其子input
元素,我想在初始化"-" + index
之前将id
附加到buttonset
attr。对于每个重复的id
和buttonset
广播,此处的目标是唯一的input
。
$("div.chart_edit_toolbar").each(function(index,event) {
$(this)
.attr("id", $(this).attr("id") + "-" + index) // works as expected
.find("input")
.each(function(i,e) {
$(this).attr("id", $(this).attr("id", + "-" + index)); // "[object Object]"
})
.buttonset();
});
在上面的代码中,id
的{{1}}按预期更改,但div
字段的id
变为input
。
如果你有一个,我也会采取更有效的方式来实现这个目标。我还需要更改随附的[object Object]
元素的for
属性,以便您可以在解决方案中包含该属性,我们将不胜感激。感谢。
示例HTML(在几个jQuery UI选项卡中重复几次):
label
如果它对其他人有帮助,这是实施的解决方案:
<div id="chart_edit_toolbar" class="alignleft chart_edit_toolbar">
<input type="radio" id="arrow_tool" name="tool_radio" checked="checked">
<label for="arrow_tool">Arrow</label>
<input type="radio" id="text_tool" name="tool_radio" >
<label for="text_tool">Text</label>
<input type="radio" id="tri_tool" name="tool_radio">
<label for="tri_tool">Tri</label>
<input type="radio" id="rect_tool" name="tool_radio">
<label for="rect_tool">Rect</label>
<input type="radio" id="clear_tool" name="tool_radio">
<label for="clear_tool">CLEAR</label>
<input type="radio" id="undo_tool" name="tool_radio">
<label for="undo_tool">UNDO</label>
</div>
答案 0 :(得分:1)
你的括号在错误的位置。
此
$(this).attr("id", $(this).attr("id", + "-" + index));
^
应该是
$(this).attr("id", $(this).attr("id") + "-" + index);
attr
setter返回jQuery对象,因此在字符串化时你得到[object Object]
。