您的“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>'));
});
在你的榜样,会发生什么?并且这不会成为你的文档吗? –