【问题标题】:Change id of an input with jquery [duplicate]使用jquery更改输入的ID [重复]
【发布时间】:2019-02-07 13:47:57
【问题描述】:

您好,我在表中有一个 td 值,当单击按钮时,我已将此 td 更改为文本类型的输入。

现在我想用 td 元素的 id 更改新输入的 id,所以我有一个例外:

input.id 不是函数

这是我的代码 js:

$("tr.forc td.TdbeforeForcage").each(function () {
    var html = $(this).html();
    var input = $('<input class="numberforce" style="width:50%" type="text" />');
    var IdTd = $(this).attr("id");
    input.val(html);
    input.id(IdTd); // Here trying to change id of input with id of td 
    $(this).html(input);

    if (html.indexOf('&nbsp;') > -1) {
      var newValue = html.replace('&nbsp;', ' ');
      $(this).find('input.numberforce').val(newValue)
    }
});

【问题讨论】:

  • 所有这些答案,没有人使用prop() 的最佳实践。另请注意@OP,您似乎正在创建重复的id(因为您从.TdbeforeForcage 获取它并将相同的值应用于新的input。这是无效的。事实上,我建议动态创建id 属性是一种相当大的代码气味。

标签: javascript jquery html


【解决方案1】:

因为它不是一个函数而是一个属性,你可以这样改变它:

input.id = IdTd;

使用 jQuery 时:

input.attr('id', IdTd);

【讨论】:

    【解决方案2】:

    用途:

    $(input).attr("id", "newID");

    【讨论】:

      【解决方案3】:

      这里查看jquery attr方法http://api.jquery.com/attr/#attr2

      input.attr('id', IdTd);
      

      【讨论】:

        【解决方案4】:

        Id 是一个属性而不是一个函数。要设置一个 id,你可以这样设置:

        input.id = "id"; // input is an Element object
        

        input.attr("id", "newId"); // input is a jQuery object
        

        【讨论】:

        • 鉴于 input 是一个 jQuery 对象,这不会像你期望的那样工作
        • 感谢@RoryMcCrossan 的指示。我已经更新了我的答案。
        猜你喜欢
        • 2012-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多