2016-08-24 31 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); 
     });