Javascript 使用jquery更改属性时出现问题
我在更改id的属性时遇到问题,似乎无法找出我做错了什么。我想这对我也是个新手也没什么帮助 我有一个函数,用于测试以确保从动态创建的表单行中提取正确的id。事情是这样的:Javascript 使用jquery更改属性时出现问题,javascript,jquery,Javascript,Jquery,我在更改id的属性时遇到问题,似乎无法找出我做错了什么。我想这对我也是个新手也没什么帮助 我有一个函数,用于测试以确保从动态创建的表单行中提取正确的id。事情是这样的: myFunction() { var id = $(id).attr("id"); alert("This is my id " + id); } 这样做没有问题,当我单击指定的提醒我id的按钮时,它将给出表单中动态行的id。现在的问题是,当我尝试使用以下内容更改id时: changeId() { var newI
myFunction() {
var id = $(id).attr("id");
alert("This is my id " + id);
}
这样做没有问题,当我单击指定的提醒我id的按钮时,它将给出表单中动态行的id。现在的问题是,当我尝试使用以下内容更改id时:
changeId() {
var newId = $(id).attr("id", "x");
alert("This is my new id " + newId);
}
在这种情况下,它会提醒说“这是我的新id[对象]”,而不是给我新id。有什么建议吗?我非常感谢您提供的任何帮助。您正在设置,但没有得到。当您使用
.attr
设置属性时,会返回jQuery对象,而不是您设置的值。尝试:
changeId() {
$(id).attr("id", "x");
var id = $(id).attr("id");
alert("This is my new id " + newId);
}
再次返回jQuery对象(这样您可以保持链接),如果您想要分配的ID,您需要执行以下操作:
changeId() {
var newId = $(id).attr("id", "x").attr("id");
alert("This is my new id " + newId);
}
虽然直达路线要好得多,例如:
changeId() {
var newId = "x"
$(id).attr("id", newId);
alert("This is my new id " + newId);
}
attr(名称、值)
返回jQuery对象。这是为了支持jQuery方法链接
你想要
changeId() {
// ------------------------------v method chaining!
var newId = $(id).attr("id", "x").attr("id");
alert("This is my new id " + newId);
}
或者干脆
changeId() {
$(id).attr("id", "x");
alert("This is my new id " + id.id);
}
也许您还可以找到一个比运行.attr()
并使用一个参数返回属性值的id
更好的变量名称
使用两个参数运行.attr()
,返回调用它的jQuery对象
文档:
attr
用于设置属性时,返回原始jQuery对象,而不是新的属性值。只需更改DOM节点的id
属性即可。适用于所有浏览器,非常简单:
var el = document.getElementById("your_id");
el.id = "new_id";
alert(el.id);
这些例子似乎不完整。它们缺少
函数
关键字,变量id
未定义。这也是+1。你花了最大的努力去写,甚至还拿到了链接,但仍然只差3秒就拿到了第一名:-)尼克,你为什么要在你修订的changeId()中捕获newId
?这对我来说更有意义:changeId(){var newId='x';$(id).attr('id',newId);alert('This is my newId'+newId);}
感谢Nick和所有回答的人,这正是我需要做的!