我正在尝试获取具有内部元素的Element的内部html
<span> Hello How <span>a</span> re You</span>
我只想获取你好你怎么样但是我会这样:
Hello How <span>a</span> re You
这是我的javascript代码:
<script>
$(document).ready(function(){
var spans = document.getElementsByTagName("span");
for(i=0;i<spans.length;i++){
alert(spans[i].innerHTML);
}
});
</script>
谁能告诉我怎么解决这个问题? THANKYOU
答案 0 :(得分:1)
您可以克隆element
然后删除子元素并获取内容或过滤内部内容
$(document).ready(function() {
var $spans = $("span");
//first way
$spans.each(function() {
var text = $(this).clone().find('*').remove().end().text();
snippet.log('1: ' + text)
});
//second way
$spans.each(function() {
var text = $(this).contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
}).text();
snippet.log('2: ' + text)
})
});
&#13;
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span> Hello How <span>a</span> re You</span>
&#13;
答案 1 :(得分:0)
以jquery的方式。
$(document).ready(function(){
var spans = document.getElementsByTagName("span");
for(i=0;i<spans.length;i++){
alert($(spans[i]).text()); // Changed here
}
});
使用javascript
$(document).ready(function(){
var spans = document.getElementsByTagName("span");
for(i=0;i<spans.length;i++){
alert(spans[i].textContent); // Using textContent
}
});
评论后 编辑
如果您只查找“Hello How a re You”,则只需要首先检索文本表单NodeList
。
以jquery方式
$(document).ready(function(){
var sp = $('span');
alert($(sp[0]).text())
});
答案 2 :(得分:0)
你可以这样做
alert($("span")[0].innerHTML.replace(/<(?:.|\n)*>/gm, ''));
<span> Hello How <span>a</span> re You</span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>