如何使用每个语句获取子标记。
<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 :(得分: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);
});