Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery删除span标记而不丢失数据?_Jquery_Html - Fatal编程技术网

如何使用jquery删除span标记而不丢失数据?

如何使用jquery删除span标记而不丢失数据?,jquery,html,Jquery,Html,我的菜单结构如下所示 <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34" id="menu-item-34"><a href="http://localhost/artofsujata/testimonials/"> <span class="menu_left">&nb

我的菜单结构如下所示

    <ul class="sub-menu">
    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34" id="menu-item-34"><a href="http://localhost/artofsujata/testimonials/">
<span class="menu_left">&nbsp;</span> 
<span class="menu_center">Testimonials</span> 
<span class="menu_right">&nbsp;</span>
</a>
</li>   
</ul>
    <ul class="sub-menu">
    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34" id="menu-item-34"><a href="http://localhost/artofsujata/testimonials/">
&nbsp; 
Testimonials
&nbsp;
</a>
</li>   
</ul>
我需要在不丢失数据的情况下删除标签,我需要上面的菜单结构,如下所示

    <ul class="sub-menu">
    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34" id="menu-item-34"><a href="http://localhost/artofsujata/testimonials/">
<span class="menu_left">&nbsp;</span> 
<span class="menu_center">Testimonials</span> 
<span class="menu_right">&nbsp;</span>
</a>
</li>   
</ul>
    <ul class="sub-menu">
    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-34" id="menu-item-34"><a href="http://localhost/artofsujata/testimonials/">
&nbsp; 
Testimonials
&nbsp;
</a>
</li>   
</ul>

如何使用jquery实现这一点?。

读取所有标记,将数据存储在JS中的数组中,删除所有标记,然后将数据重新编写为所需的格式?

读取所有标记,将数据存储在JS中的数组中,删除所有标记,然后将数据重新编写为所需的格式?

这将达到以下目的:

$('ul li a').html($('ul li a').text());
$("span").contents().unwrap();
使用$'ul li a'。text选择标记中的所有文本节点。使用$'ul li a'.html将所有选定的文本节点放入标记中。这将导致从那里剥离所有标记

对于多个LIs,您可以使用:

$('ul.sub-menu > li.menu-item > a').each(function(){
  $(this).html($(this).text());
});

这将实现以下目的:

$('ul li a').html($('ul li a').text());
$("span").contents().unwrap();
使用$'ul li a'。text选择标记中的所有文本节点。使用$'ul li a'.html将所有选定的文本节点放入标记中。这将导致从那里剥离所有标记

对于多个LIs,您可以使用:

$('ul.sub-menu > li.menu-item > a').each(function(){
  $(this).html($(this).text());
});
如中所述,这应该起到以下作用:

$('ul li a').html($('ul li a').text());
$("span").contents().unwrap();

显然,您可能希望在菜单中更准确地定位此选项,以避免删除页面上的其他跨距:

$(".sub-menu li span").contents().unwrap();
另一方面,我建议根据您的实际问题,仅更改CSS中跨度的样式可能更容易。

如中所述,这应该可以做到:

$('ul li a').html($('ul li a').text());
$("span").contents().unwrap();

显然,您可能希望在菜单中更准确地定位此选项,以避免删除页面上的其他跨距:

$(".sub-menu li span").contents().unwrap();

另一方面,我建议根据您的实际问题,更改CSS中span的样式可能更容易。

可能重复:jsFiddle显示此问题的方法。可能重复:jsFiddle显示此问题的方法。+1。很好。但请将其用于多个lis$'ul li a'。每个函数{$this.html$this.text;}@纳文:很好,如果你不介意的话,我会在答案中加上你的一点。很好。但请将其用于多个lis$'ul li a'。每个函数{$this.html$this.text;}@naveen公平评论,如果你不介意的话,我会在答案中添加你的部分。回答不错,我不知道你可以在文本节点上使用“展开”。我想我今天学到了一些东西:回答得好,我不知道你可以在文本节点上使用“展开”。我想我今天学到了一些东西: