【问题标题】:JQuery dynamic ID control propertyjQuery动态ID控件属性
【发布时间】:2010-11-08 04:37:18
【问题描述】:

所以,我有 JQuery 动态生成控件。输入控件称为 EnterLink + 生成的控件数。在生成新的输入控件时,我想更改以前创建的输入,使其被禁用。现在我的代码看起来像这样,它不起作用。

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

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

【问题讨论】:

    标签: jquery dynamic controls


    【解决方案1】:

    替换这个:

    $("#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 函数来删除禁用的值。

    【讨论】:

    • 谢谢! 15 个字符限制臭味
    【解决方案2】:

    如果您尝试禁用按钮,则如下所示。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2013-01-21
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多