如何使用jquery为输入ID名称添加数字

时间:2015-11-17 04:14:47

标签: javascript jquery html input sequence

我正在使用wordpress插件生成具有给定ID名称的输入字段 - fieldname15_6

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

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

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

我做错了什么? 感谢。

4 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:2)

var i = 1;
$("input#fieldname15_6").each(function(){
    $(this).attr('id', function(i) {
        return "fieldname15_6" + ++i;
    });
});

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

简单的答案是不要。你应该为这类事物使用类,这就是它们的用途。然后,您可以使用各种方法来定位和使用.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>