【问题标题】:How to use jquery to add numbers to input ID name如何使用jquery添加数字以输入ID名称
【发布时间】:2015-11-17 04:14:46
【问题描述】:

我正在使用一个 wordpress 插件,它生成一个带有给定 ID 名称的输入字段 - fieldname15_6

我在循环中使用代码,因此对于每个帖子,它都会创建具有相同 ID 名称的输入字段。当然,这是一个问题。我有大约 10 个具有相同 ID 名称的输入,我相信这会导致显示问题。不管我的 CSS 规则如何,字体大小和间距似乎有点随机。

无论如何,我需要一种方法来自动将数字 1+ 添加到具有该 ID 名称的任何已创建输入。我尝试使用以下代码,但它什么也没做 --

$("input[id^='fieldname15_6']").attr('id', function (i) {
    return "fieldname15_6" + ++i;
});

我做错了什么? 谢谢。

【问题讨论】:

  • 我有大约 10 个具有相同 ID 名称的输入 ID 应该是唯一的
  • 哈,应该和html一起旧的应该是幸运的。 :P
  • 您的代码是否生成输入字段?如果是这样,您应该在生成它们时解决唯一 ID 问题。目前的答案显示了如何在创建字段后解决问题。您在寻找如何修复生成字段的代码吗?
  • 如果你使用jquery版本>= 1.6,你可以使用.prop()而不是.attr()
  • @guradio 我知道这一点。我无法控制它,它是由插件创建的。

标签: javascript jquery html input sequence


【解决方案1】:
var i = 1;
$("input#fieldname15_6").each(function(){
    $(this).attr('id', function(i) {
        return "fieldname15_6" + ++i;
    });
});

这会对你有所帮助.....

【讨论】:

  • 这行得通,但它类似于打破家里的水龙头并在地板上钻一个洞来排水,而不是固定水龙头......
【解决方案2】:
$("input[id^='fieldname15_6']").each(function(i){
    $(this).attr('id', $(this).attr('id') + i);
});

【讨论】:

    【解决方案3】:

    试试这个:

    var $files = $('body').find("input").attr("id","fieldname15_6");
    $files.each(function(index) 
    {
         newIndex = $(this).attr("id") + index;
         $(this).attr("class", newIndex );
    });
    

    【讨论】:

    • $(this) + i 将返回一个对象而不是属性
    • $(this) + index。它会返回什么?
    • @Mi-Creativity tnx。固定。
    • @Mr.Wolf 它返回id="[object Object]2"
    • 这使我的输入字段完全停止出现
    【解决方案4】:

    简单的答案是不要。你应该为这类事情使用类,这就是它们的用途。然后,您可以使用各种方法来定位和处理单个元素,例如 .eq()

    $('#result').html($('.fieldname15_6').eq(2).val()); // eq is 0 based array syntax so 2 will be the 3rd element
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <input type="text" class="fieldname15_6" value="first value">
    <input type="text" class="fieldname15_6" value="second value">
    <input type="text" class="fieldname15_6" value="third value">
    
    <br>
    <br>
    <br>
    <br>
    
    
    <div id="result"></div>

    【讨论】:

    • 我无法控制插件输入属性。
    • @mygm26 他们有类名吗?您可以使用它并按照此答案中的建议获取索引,我认为这是最好的答案。
    • @mygm26 你用的是什么插件,一个写得很好的插件不应该生成多个输入相同的id,因为这将是无效的HTML。我敢打赌有一种方法可以改变输出。但是正如guradion所说,如果他们现在都共享一些课程,你仍然可以应用这个。如果可能的话,你应该避免使用增量 id ......它可能会让它们变得混乱
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多