我正在尝试更改克隆表行的名称属性。这是我的代码:
var ipCount = 2;
$("#input_form").on("click", "#add_input_param", function() {
$('#input_param tr').eq(1).clone().find('input').val('').end()
.appendTo('#input_param > thead')
.find('*[name]')
.each(function() {
console.log($(this).attr('name'));
$(this).attr('name', 'new_name');
console.log($(this).attr('name'));
});
ipCount++;
});
在控制台上,它将名称 attr 更改为 new_name 但当我在 Chrome DevTools 上执行 Inspect Element 时未显示。这是控制台:
:ops1/6/1/1_param js.js:48
new_name js.js:50
:ops1/6/1/1_type js.js:48
new_name js.js:50
:ops1/6/1/1_required js.js:48
new_name js.js:50
:ops1/6/1/1_desc js.js:48
new_name js.js:50
:ops1/6/1/1_location js.js:48
new_name
点击后的 HTML 在 DevTools 上显示:
<input type="text" name=":ops1/6/1/1_param" class="ui-input-text ui-body-c">
我一直在尝试交互 name 属性,但是当我这样做时它似乎没有改变。
我的 HTML 表(该行是从克隆表中克隆的)这可能是它不更改名称 attr 的原因)
<h4>
3.3.5 Input Parameters
</h4>
<table id="input_param" >
<thead>
<tr>
<th>Parameter</th>
<th>Data Type</th>
<th>Required</th>
<th>Brief description</th>
<th>Location in Request</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name=":ops1/6/1/1_param" /></td>
<td><input type="text" name=":ops1/6/1/1_type" /></td>
<td>
<select id="required" name=":ops1/6/1/1_required">
<option value="Mandatory" >Mandatory</option>
<option value="Optional" >Optional</option>
<option value="Conditional" >Conditional</option>
</select>
</td>
<td><textarea name=":ops1/6/1/1_desc"></textarea></td>
<td>
<select name=":ops1/6/1/1_location">
<option value="Header" >Header</option>
<option value="Body" >Body</option>
<option value="Query_param" >Query Parameter</option>
<option value="Resource_uri" >Resource URI</option>
</select>
</td>
</tr>
</tbody>
</table>
<input type="button" id="add_input_param" value="+ Add Input Parameter" data-inline="true" /><br />