我有此代码:
var prodElem = $('#dropTitle').text();
$(prodElem).clone(true, true).appendTo('#orders')
.attr("name", $(this).attr("name") + "-1");
,但name属性已由 -1 代替。
如何使用“ this”获得当前名称并将-1附加到末尾?
谢谢!
答案 0 :(得分:4)
this
并不引用您要为其设置名称的元素。我的猜测是,这段代码正在运行,其中this
指向window
,因此$(this).attr("name")
返回窗口名称(通常为空白),因此您将name
设置为"" + "-1"
的所有这些元素,当然是"-1"
。
您可以使用the version of attr
that accepts a callback:
$(prodElem).clone(true, true).appendTo('#orders')
.attr("name", function() {
return $(this).attr("name") + "-1";
});
this
是指每个匹配的元素。
旁注:如果这确实是name
属性,则由属性name
反映出来,因此您也可以使用prop
进行操作,并直接在函数中获取反映的属性:
$(prodElem).clone(true, true).appendTo('#orders')
.prop("name", function() {
return this.name + "-1";
});