使用JS将变量值设置为属性

时间:2014-08-05 10:12:57

标签: javascript

这是我的代码:

var chk="checked";
document.getElementById("chk").chk=true;

我使用变量在第二行设置属性。

但这没有错误。

请帮我找到这个。

6 个答案:

答案 0 :(得分:2)

你可能想要:

document.getElementById("chk").setAttribute(chk, true);

将其设置为HTML属性(不是对象属性 - 因为您使用[]括号)。这是您可能正在寻找的,因为您正在使用HTMLElememnt。

澄清:

  • setAttribute - 设置HTML元素的属性。它会将此<div>转换为:<div checked="true">(假设所讨论的元素是div)
  • [] - 用于普通的JS对象。在这种情况下,名称&#39;属性&#39;是使用而不是&#39;属性&#39;

另请注意,如果元素为<input>,则两种方法都有效。这是因为HTMLInputElement包含&#39;已检查&#39;属性。有关详细信息,请参阅HTMLInputElement MDN page

答案 1 :(得分:1)

试试这个:

document.getElementById("chk")[chk] = true; 

这个设置属性

或使用.setAttribute属性

document.getElementById("chk").setAttribute(chk, true);

这将设置属性。如果您在HTML元素上使用它,那么这个是更好的选择,因为这将设置HTML属性。

答案 2 :(得分:1)

像这样使用。

document.getElementById("chk").setAttribute(chk, true);

答案 3 :(得分:0)

尝试,

document.getElementById("chk")[chk] = true;

答案 4 :(得分:0)

您可以向任何JavaScript对象添加变量,这就是为什么代码将在没有错误的情况下运行的原因,但是 - 正如您所观察到的 - 如果该属性不是预定义的,语义上有意义,它将不会产生任何副作用一。为此,您应该阅读给定元素的一些文档。对于checkbox元素,您要查找的属性的名称为checked。 (请注意,使用点语法将右侧的文本视为属性的名称,它首先不对其进行评估。对于属性名称的动态评估,请对正常对象使用[]语法并{{{ 1}}用于HTML属性)。

答案 5 :(得分:0)

在你的情况下,

chk是一个javascript变量。当getElementById时,它引用HTML文档及其中的标记。例如,

<input id=appleId type="radio" name="fruit" value="Apple" />

在JS中,您可以说,

document.getElementById("appleId").checked = true;

请参阅How can I check whether a radio button is selected with JavaScript?