JQuery动态ID控件属性

时间:2009-07-05 08:07:07

标签: jquery dynamic controls

所以,我让JQuery动态生成控件。输入控件称为EnterLink +生成的控件数。在生成新的输入控件时,我想更改先前创建的输入,以便禁用它。现在我的代码看起来如此,它不起作用。

if (rowCount > 0) {
                   var last = rowCount - 1;
                  $("#EnterLink" + last).disabled = true;
                  }

这看起来应该可以工作,我检查了控件的ID,这就像它们的格式一样。

2 个答案:

答案 0 :(得分:10)

替换它:

$("#EnterLink" + last).disabled = true;

有了这个:

$("#EnterLink" + last).attr('disabled', true);

jQuery不直接通过其$()函数公开常规DOM属性。你所拥有的是一个包装集(被授予,只会匹配1个元素,但仍然是一个集合),它扩展了元素并为它添加了所有jQuery的优点。

如果你想获得#EnterLinkX的原生DOM元素,你可以这样做:

$("#EnterLink" + last)[0].disabled = true;

这是有效的,因为$()的返回值是一个包含匹配元素的类数组结构。 [0]将包含第一个(仅在此情况下)匹配。这样就可以访问innerHTML等内容。但是,99%的情况下,你最好选择“jQuery方式”,因为这是图书馆的重点。在这种情况下,您可以使用它的attr函数来设置属性,如果您愿意,可以使用removeAttr函数来删除已禁用的值。

答案 1 :(得分:2)

如果您尝试禁用按钮,则会出现以下情况:

$(“#EnterLink”+ last).attr(“disabled”,true); 要么 $(“#EnterLink”+ last).attr(“禁用”,“禁用”);