如何使用jQuery仅更改name属性的一部分?
例如,如果我有:
<input type="text" name="Sometext[1]">
如何让jQuery将Sometext[1]
更改为Sometext[2]
,然后更改为Sometext[3]
等。
我有动态表单字段,我需要每个name
属性都是唯一的。
答案 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;
});
答案 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]');
});