如何使用每个语句获取子标签?

时间:2016-08-24 08:06:26

标签: jquery svg

如何使用每个语句获取子标记。

<svg id="svgcontent" >
  <g id="layer" > <g>
  <g id="test1" > <g>
  <g id="test2"></g>
  <g id="test2"> </g>
<svg>

我需要以下输出如何使用jquery来获取它。

<g id="test1" > <g>
<g id="test2"></g>
<g id="test2"> </g>

我试过这个

var element = "";
$('#svgcontent g').each(function () {                                   
    var cur_class = $(this).attr("class");                                  
    if(cur_class != "layer") {
        element =   element+$(this).html();
    }
}

2 个答案:

答案 0 :(得分:1)

HTML

<svg id="svgcontent" >
    <g id="layer" class='layer' > </g>
    <g id="test1" > </g>
    <g id="test2"></g>
    <g id="test2"> </g>
<span>

的JavaScript

$('#svgcontent g').each(function () {                                  
    if($(this).hasClass('layer')) {
        $(this).remove();
    }
});

答案 1 :(得分:0)

如果要将整个html标记保存到变量,则需要使用outerHTML属性来获取标记的整个html,因为html()只返回html标记的内部html,而在html中,您使用id作为标记在您的js代码中,您正在使用.attr('class');

所以你需要喜欢这个

HTML

  <svg id="svgcontent" >
  <g id="layer" > </g>
  <g id="test1" > </g>
  <g id="test2"></g>
  <g id="test2"> </g>
<svg>

JS:

$(function(){
   var element="";
$('#svgcontent g').each(function(){                                   
  var cur_class=$(this).attr("id");                                  
  if(cur_class!="layer"){
      element=   element+$(this)[0].outerHTML;
  }    
});
});

或者你也可以使用像这样的选择器

来做到这一点
$(function(){
        var element="";
        $('#svgcontent g[id!=layer]').each(function(){                                   

              element =element+ $(this)[0].outerHTML;   
        });
         console.log(element);
        });