Javascript 使用jQuery替换HTML

Javascript 使用jQuery替换HTML,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,我的目标是替换以下内容 function toText() { var convertHTML =$('#mainContent').html(); var ele = $(convertHTML + " > span").each(function(){ $(this).replaceWith($(this).text()); }); console.log(ele); } 测试 1234 测试 1234 并希望我的函数输出

我的目标是替换以下内容

function toText()
{
    var convertHTML =$('#mainContent').html();
    var ele = $(convertHTML + " > span").each(function(){
        $(this).replaceWith($(this).text());
    });
    console.log(ele);


}

测试

1234
测试
1234
并希望我的函数输出test

1234
test
1234

这就是为什么我不能只使用text(),因为它也会带走

像这样试试:

    <div id="mainContent">
    test
<br>
    1234
<br>
    <span class="underline">test</span>
<br>
    <span class="underline">1234</span>
    </div>
您可以使用整个html块作为jQuery选择器:)

如下所示:

    <div id="mainContent">
    test
<br>
    1234
<br>
    <span class="underline">test</span>
<br>
    <span class="underline">1234</span>
    </div>

您可以使用整个html块作为jQuery选择器:)

convertHTML
from
var convertHTML=$('#mainContent').html()不是jQuery对象

你得写信

function toText()
{
    var ele = $("#mainContent > span").each(function(){
        $(this).replaceWith($(this).text());
    });
    console.log(ele);
}   
原因:

$('#mainContent').html()
将返回
字符串
而不是
$的jQuery对象。每个
都将正常工作

var ele=$(convertHTML+“>span”)
意味着


var-ele=$(“test
1234
test
1234”+“>span”)
convertHTML
from
var-convertHTML=$('#mainContent').html()不是jQuery对象

你得写信

function toText()
{
    var ele = $("#mainContent > span").each(function(){
        $(this).replaceWith($(this).text());
    });
    console.log(ele);
}   
原因:

$('#mainContent').html()
将返回
字符串
而不是
$的jQuery对象。每个
都将正常工作

var ele=$(convertHTML+“>span”)
意味着


var ele=$(
1234
test
1234“+”>span)
您正在获取从
$(“#mainContent”).html()返回的html字符串,并尝试将其用作下一行选择器的一部分,而实际需要的选择器是
“#mainContent>span”

请尝试以下方法:

var ele = $("#mainContent > span").each(function(){
        $(this).replaceWith($(this).text());
    });
您不需要
.each()
循环:如果将函数传递给
.replaceWith()
,则会对jQuery对象中的每个元素调用该函数一次,并使用返回值替换当前元素


演示:

您正在获取从
$(“#mainContent”).html()返回的html字符串,并尝试将其用作下一行选择器的一部分,而实际需要的选择器是
“#mainContent>span”

请尝试以下方法:

var ele = $("#mainContent > span").each(function(){
        $(this).replaceWith($(this).text());
    });
您不需要
.each()
循环:如果将函数传递给
.replaceWith()
,则会对jQuery对象中的每个元素调用该函数一次,并使用返回值替换当前元素

演示: