jquery更改标记
我有这个代码不起作用,你能帮帮我吗? 我希望我将class =“s7”的标签名称“p”更改为“h1”
$(document).ready(function(){ $(".s7").replaceWith($('' + $(this).html() + '
'); });
问题是你将所有元素与类s7
匹配,但是你需要逐个处理它们,以便将它们的内容复制到新元素中。 在您当前的代码中, this
始终是document
,而不是当前元素。
您可以使用each()迭代匹配的元素:
$(".s7").each(function() { var $this = $(this); $this.replaceWith($("" + $this.html() + "
")); });
或者可能:
$(".s7").each(function() { $("" + $(this).html() + "
").replaceAll(this); });
你错过了一个右括号,你在错误的上下文中使用它 :
$(document).ready(function(){ $(".s7").replaceWith($('' + $(".s7").html() + '
')); });
如果您有多个类名为s7
元素,请使用.each()
:
$(document).ready(function(){ $(".s7").each(function(){ $(this).replaceWith($('' + $(this).html() + '
')); }); });
“replaceWith()”调用中this
的值不是“s7”元素; 这将是更大的“document.ready”处理程序中的任何内容。
要做你想做的事,请使用“.each()”:
$('.s7').each(function() { $(this).replaceWith($('' + $(this).html() + '
')); });
在该版本中,jQuery将使用类“s7”为每个元素调用“each”函数。 此外,在该函数调用中,jQuery安排在每次迭代时引用其中一个DOM元素。
为了进一步阐述差异,请考虑在我的版本和你的版本中,“replaceWith()”的参数是在调用“.replaceWith()” 之前计算的。 也就是说,在函数调用之前计算涉及$(this)
的字符串连接表达式。 因此,没有办法承担链中任何元素的价值; JavaScript根本不起作用。
但是,使用“.each()”循环,我们可以确保它具有有用的值。 请注意“.each()” 还将对当前DOM元素的引用作为显式参数传递,因此代码也可能如下所示:
$('.s').each(function(index, element) { $(element).replaceWith($('' + $(element).html() + '
')); });
- javascript / jquery简写代码和活动函数
- 更新arrays时模型的更改事件不会触发?
- JavaScript习惯用法:只创建一个函数来调用它
- 根据部分属性查找HTML
- …… 替换()或wrap()http://name.tld/request_url?参数?">jQuery:用 …… 替换()或wrap()http://name.tld/request_url?参数?
- 检查cookie存在使用jquery / js登录注销
- 使用Ajax自动更新Highcharts
- Javascript正则表达式匹配字符串后跟数字?
- 获得一个月的一周