单击JQuery中的标签时,我正试图更改该标签的文本。
当我使用其确切名称引用控件("CCP"(时,此代码有效:
$("label[for='ACCP']").text("the new text");
但我希望能够使用变量而不是其确切名称来引用控件。这不起作用:
$("label[for=' + this.id + ']").text("the new text");
我很确定正确的控件在this.id
后面,因为当我弹出一条消息来检索当前控件的id时,它会给我预期的控件名称:
var ctrlName = this.id;
alert(ctrlName);
->在这种情况下,正确地返回"ACCP"。
我的代码中可能缺少一个明显的语法错误,但我从来没有做过JQuery——我的代码都是复制粘贴的;(
提前感谢您的宝贵帮助,JM-
您需要关闭双引号:https://jsfiddle.net/gz61mdbf/
this.id = 'new_code'
$("label[for='" + this.id + "']").text("the new text");
您正在对for
执行字符串操作而不关闭它们,这就是为什么它对您不起作用。
您尝试过$("label[for=" + $(this).id + "]").text("the new text");
吗?
就像在这个链接中所说的:
使用此方法时,可以对其调用DOM方法,但不能调用jQuery方法。当使用$(this(时,可以对其调用jQuery方法,但是而不是DOM方法。
希望这能对您有所帮助。