您的「replaceWith()」調用中的this
的值不會是「s7」元素;這將是什麼this
是在更大的「document.ready」處理程序。
做你想做的,用什麼「每()」:
$('.s7').each(function() {
$(this).replaceWith($('<h1>' + $(this).html() + '</h1>'));
});
與該版本,jQuery將要求帶班‘S7’每個元素‘每個’功能。此外,在該函數調用中,jQuery還會安排this
在每次迭代中引用其中一個DOM元素。
爲了進一步闡述差異,請考慮在我的版本和您的「replaceWith()」參數之前「.replaceWith()」被調用。也就是說,在函數調用之前評估涉及$(this)
的字符串連接表達式。因此,this
沒有辦法鏈接鏈中任何元素的值; JavaScript根本無法這樣工作。但是,使用「.each()」循環,我們可以確保this
具有有用的值。需要注意的是「每()」 也傳遞到當前的DOM元素作爲一個明確的參數的引用,因此代碼還可以是這樣的:
$('.s').each(function(index, element) {
$(element).replaceWith($('<h1>' + $(element).html() + '</h1>'));
});
在你的榜樣,會發生什麼?並且這不會成爲你的文檔嗎? –