2016-08-24 33 views
-6

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

<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(); 
    } 
} 
+0

哪里是你的jQuery代码? –

回答

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(); 
    } 
}); 
0

如果你想整个HTML标签保存到一个变量,你需要使用outerHTML属性来获取标签的整个HTML,因为HTML()仅ret urn html标签的内部html,并且在您的html中,您正在使用id作为标签,并且使用了您正在使用的.str代码('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; 
    }  
}); 
}); 

或者你也可以做到这一点使用不selecter这样

$(function(){ 
     var element=""; 
     $('#svgcontent g[id!=layer]').each(function(){         

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