Javascript 使用jQuery替换HTML的特定部分
我试图找到HTML代码的特定部分,并使用jQuery将其替换为另一部分。我已经用JSFIDLE尽可能简单地复制了这个问题: 在本例中,我尝试在鼠标退出DOM时将字体从斜体改为粗体。我正在使用Javascript 使用jQuery替换HTML的特定部分,javascript,jquery,html,Javascript,Jquery,Html,我试图找到HTML代码的特定部分,并使用jQuery将其替换为另一部分。我已经用JSFIDLE尽可能简单地复制了这个问题: 在本例中,我尝试在鼠标退出DOM时将字体从斜体改为粗体。我正在使用替换,但它不起作用。我不知道该换什么 $(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>'); $(this.html().replace(“”,).replace(“
替换
,但它不起作用。我不知道该换什么
$(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>');
$(this.html().replace(“”,).replace(“”,);
您正在获取并替换html,但最后没有对其进行任何操作。试试这个:
$(this).html(
$(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>')
);
$(this).html(
$(this.html().replace(“”,')。replace(“”,'))
);
但就我个人而言,我会采用以下方法:
$(this).find('em').each(function() {
$(this).replaceWith($('<strong />').html($(this).html()));
});
$(this.find('em')。每个(函数(){
$(this.replacetwith($('').html($(this.html()));
});
您正在获取并替换html,但在最后没有对其进行任何操作。试试这个:
$(this).html(
$(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>')
);
$(this).html(
$(this.html().replace(“”,')。replace(“”,'))
);
但就我个人而言,我会采用以下方法:
$(this).find('em').each(function() {
$(this).replaceWith($('<strong />').html($(this).html()));
});
$(this.find('em')。每个(函数(){
$(this.replacetwith($('').html($(this.html()));
});
.html()方法和后续的.replace()方法返回字符串。如果要用字符串替换html,则需要用更新的字符串设置$(this).html()
var updatedHtml = $(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>');
$(this).html(updatedHtml);
var updatedHtml=$(this.html().replace(“”,).replace(“”,);
$(this).html(updatedHtml);
.html()方法和后续的.replace()方法返回字符串。如果要用字符串替换html,则需要用更新的字符串设置$(this).html()
var updatedHtml = $(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>');
$(this).html(updatedHtml);
var updatedHtml=$(this.html().replace(“”,).replace(“”,);
$(this).html(updatedHtml);
replace
不是就地方法,即使如此,也不意味着将调用.html(content)。如果replace是一个inplace调用,那么返回的字符串将被更改,而不是真正的内部原始html
假设您在一个步骤中完成了此操作:
var str_ = $(this).html();
str_.replace(...).replace(...);
如您所见,html内容不会被修改
Bit更糟糕的是,由于replace
方法不存在,因此str_u
和str_u.replace(…).replace(…)
将具有不同的对象
你必须把衣服包起来
$(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>');
$(this.html().replace(“”,).replace(“”,);
在$(this.html(…)调用中:
$(this.html($(this.html().replace(“”,).replace(“”,);
replace
不是就地方法,即使如此,也不意味着将调用.html(content)。如果replace是一个inplace调用,那么返回的字符串将被更改,而不是真正的内部原始html
假设您在一个步骤中完成了此操作:
var str_ = $(this).html();
str_.replace(...).replace(...);
如您所见,html内容不会被修改
Bit更糟糕的是,由于replace
方法不存在,因此str_u
和str_u.replace(…).replace(…)
将具有不同的对象
你必须把衣服包起来
$(this).html().replace('<em>', '<strong>').replace('</em>', '</strong>');
$(this.html().replace(“”,).replace(“”,);
在$(this.html(…)调用中:
$(this.html($(this.html().replace(“”,).replace(“”,);
或者,您可以使用此方法替换标记:
$(this).find('em').each(function() {
$(this).replaceWith($('<strong>' + this.innerHTML + '</strong>'));
});
$(this).find('em').each(function(){
$(this.replace为($(“”+this.innerHTML+”);
});
或者,您可以使用此方法替换标记:
$(this).find('em').each(function() {
$(this).replaceWith($('<strong>' + this.innerHTML + '</strong>'));
});
$(this).find('em').each(function(){
$(this.replace为($(“”+this.innerHTML+”);
});
根据(不完全相同的方法,但无论如何可能会产生类似的结果)您的方法可能更快,因此最好坚持使用它。根据(不完全相同的方法,但无论如何可能会产生类似的结果)您的方法可能更快,因此最好坚持使用它。