更改名称属性的一部分

时间:2011-06-01 10:35:04

标签: jquery

如何使用jQuery仅更改name属性的一部分?

例如,如果我有:

<input type="text" name="Sometext[1]">

如何让jQuery将Sometext[1]更改为Sometext[2],然后更改为Sometext[3]等。 我有动态表单字段,我需要每个name属性都是唯一的。

4 个答案:

答案 0 :(得分:5)

您可以执行以下操作:

var i = 0;

$('input').each(function () {
   $(this).attr('name', 'Sometext[' + i + ']');
   i++;
});

假设你知道“Sometext”! 如果你不知道,你必须猜测它:

var i = 0;

$('input').each(function () {
   var input_name = $(this).attr('name').substring(0, $(this).attr('name').indexOf('['));
   $(this).attr('name', input_name + '[' + i + ']');
   i++;
});

现在,通过在新名称出现时重新设置索引:

var i = 0;
var input_name = null;

$('input').each(function () {

   var new_input_name = $(this).attr('name').substring(0, $(this).attr('name').indexOf('[');

   if (input_name !== new_input_name) {
       input_name = new_input_name;
       i = 0;
   }

   $(this).attr('name', input_name + '[' + i + ']');
   i++;
});

答案 1 :(得分:0)

TRY

$('#inputID').prop('name','watever'); // v 1.6
OR
$('#inputID').attr('name','watever');

更新

var i=1;
$('#formSubmit').live('click', function () {
    $('input[type="text"]').each(function () {            
         $(this).prop('name',$(this).prop('name')+i); 
         i++;            
    });
    return false;
});

working DEMO

答案 2 :(得分:0)

首先,您需要设置元素的“id”属性,然后使用jquery,您可以引用它并更改您想要的任何属性:

$('#elementID').attr('name', 'whatever xxx');

您还可以使用“class”属性引用HTML元素,但是您可能会获得多个元素,因为更多元素可以具有相同的类属性。

答案 3 :(得分:0)

假设:

<input type="text" name="Sometext[1]" id="myInputEl">

您可以使用以下内容更改name的值:

$(function() { // wait for the dom to be ready.
    // #myInputEl is reference to the ID.

    $('#myInputEl').attr('name', 'Sometext[2]');

});