首先,代码已被简化并且只包含必要的部分。jQuery:使用.attr('id','val')更改'id'将不起作用
所以我有以下的HTML文件(single_lesson.html):
<tr class="my_lessons">
<td>
<select name="my_von" id="my_von"></select>
</td>
</tr>
我试图改变#my_von
id
到#my_von1
有以下的jQuery代码:
jQuery.get('single_lesson.html', function(my_html)
{
jQuery(my_html).children().children('#my_von').attr('id', 'my_von1');
}, 'html');
它将无法正常工作,我不知道为什么。
线
console.log(jQuery(my_html).children().children('#my_von'));
提供了以下阵列:
[select#my_von, prevObject: e.fn.init[7], context: undefined, jquery: "1.11.1", constructor: function, selector: ""…]
如果我打开这个数组有另一个数组称为select#my_von
。如果我打开这个有几个字段,并且id: "my_von"
就是其中之一。该字段id
在那里,所以我没有看到它不会改变的原因。
你得到的HTML为一个字符串,然后它包装'的jQuery(my_html)',然后你改变了ID,但是你不jQuery对象做任何事情,并且原始字符串不会被更改,因此再次包装它,您会得到完全相同的输出结果? – adeneo 2015-02-11 12:48:21
你没有改变'my_html'的内容,这个id会在通过调用'jQuery(my_html)'创建的dom对象中被更新,但它不会被更新到存储在'my_html'中的字符串中。 – 2015-02-11 12:48:48