2016-04-09 66 views
1

我想获取所有span标签的HTML,但我只能获取内部HTML。这是我的代码:Jquery无法获取元素html

var spans = document.getElementsByTagName('span'); 
for(var i=0;i<spans.length;i++) { 
    alert($(spans[i]).html()); 
} 

这只会打印标签内的文本,而不是打印标签。我怎样才能打印标签?

+0

能否请您提供codepen或的jsfiddle? – HenryDev

回答

1

var spans = $("span"); 
 
spans.each(function(index,element){ 
 
    alert(element.outerHTML); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
 
<span>Hallo</span>

您可以使用outerHTML和jQuery。希望它可以帮助

1

使用outerHTML

for (var i = 0; i < spans.length; i++) { 
    alert(spans[i].outerHTML); 
} 

DEMO

0

那里有两种方式来抓住你的页面上的所有span元素。

本地JavaScript

var spans = document.getElementsByTagName('span'); 
for (var i in spans){ 
    //print out the whole tag 
    console.log(spans[0].outerHTML); 
} 

jQuery的

var spans = $('span'); 
spans.each(function(index,elem){ 
    //print out the whole tag 
    console.log(elem.outerHTML); 
}); 

代替使用警报这是恼人的,使用的console.log(跨距);并打开您的Web浏览器控制台以查看打印出的内容。

编辑:第一张海报是正确的,outerHTML是要走的路。

+0

但我没有任何区别 – Jois

+0

而你实际上并没有回答这个问题...... – Andy

+0

OP提到了获取所有span标签的html并保持标签连接。我认为这就是代码的含义,否则我就会迷失方向。 – Sparky256

0
var spans = document.getElementsByTagName('span'); 

     for(var i=0;i<spans.length;i++){ 


      alert(  +'<span> '+ $(spans[i]).html())+' </span>'; 
     } 
    } 

只是添加了一些硬编码的'书挡'标题'跨度'。您可以根据需要修改它们。
它们充当您的html的包装,并在循环的每次迭代中运行。

0

这里是另一种方式来做到这一点:

var spans = $('span'); 
 
    spans.each(function(index,element){ 
 
     alert($('<div/>').html(element).html()); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
 
<span>Hallo</span>