jquery更改标签
我有这个代码不起作用,你能帮我吗?我想,我改变标签名称“P”级=“S7”到“H1”jquery更改标签
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".s7").replaceWith($('<h1>' + $(this).html() + '</h1>');
});
</script>
的问题是,你匹配的所有元素与类s7
,但你需要逐一处理它们,以便将其内容复制到新的元素。在您当前的代码中,this
始终为document
,而不是当前元素。
您可以使用each()遍历匹配的元素:
$(".s7").each(function() {
var $this = $(this);
$this.replaceWith($("<h1>" + $this.html() + "</h1>"));
});
或许:
$(".s7").each(function() {
$("<h1>" + $(this).html() + "</h1>").replaceAll(this);
});
你缺少一个右括号,然后你使用这在错误的情况下:
$(document).ready(function(){
$(".s7").replaceWith($('<h1>' + $(".s7").html() + '</h1>'));
});
如果您有与s7
类名称的多个元素,请使用.each()
:
$(document).ready(function(){
$(".s7").each(function(){
$(this).replaceWith($('<h1>' + $(this).html() + '</h1>'));
});
});
您的“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>'));
});
你在那里错过了''''。 –
哎呀是的,我刚刚看到你的答案,并检查我的:-)谢谢! – Pointy
在你的榜样,会发生什么?并且这不会成为你的文档吗? –