[英]Issue with changing an attribute with jquery
我在更改id属性时遇到问题,似乎无法弄清楚我在做什么错。 我想我也是新手也无济于事。
我有一个测试功能,以确保我从动态创建的表单中的行中提取正确的ID。 它是这样的:
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(attribute, value)
再次返回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对象-而不是您将其设置为的值。 尝试:
changeId() {
$(id).attr("id", "x");
var id = $(id).attr("id");
alert("This is my new id " + newId);
}
attr(name, value)
返回一个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);
}
也许您还为变量找到了比id
漂亮的名称。
用于设置属性的attr
返回原始jQuery对象而不是新属性值。
只需更改DOM节点的id
属性。 可在所有浏览器中使用,再简单不过了:
var el = document.getElementById("your_id");
el.id = "new_id";
alert(el.id);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.