首先,代碼已被簡化並且只包含必要的部分。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