所以,如果我有
<div id="outside">
Hello
<div id="inside">
Qwertyuiop
</div>
</div>
如果不包含内部或任何其他HTML标记中的任何内容,我如何获取外部的InnerHTML? (基本上如何获得&#34;你好&#34;)
答案 0 :(得分:4)
这不是一个严肃的答案,它基于Darin Morris'
极具破坏性的答案,但破坏性稍差:
// Clone the element
var $clone = $("#outside").clone();
// Remove all the children (leaves text nodes)
$clone.children().remove();
alert($clone.text());
http://jsfiddle.net/TrueBlueAussie/ez4v83v5/4/
我不会再推荐这个作为
的替代方案$('#outside')[0].firstChild.nodeValue
但谁知道......这种技术在某些时候可能派上用场了:)
答案 1 :(得分:3)
另一种选择:
$(function(){
var theHtml = $("#outside");
var texto = theHtml[0].childNodes[0].data;
alert((texto));
});
答案 2 :(得分:2)
尝试在此上下文中使用.contents()
alert($("#outside").contents().first()[0].nodeValue);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="outside">
Hello
<div id="inside">
Qwertyuiop
</div>
</div>
&#13;
答案 3 :(得分:2)
你正试图获得第一个孩子的价值
alert($('#outside').prop('firstChild').nodeValue)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="outside">
Hello
<div id="inside">
Qwertyuiop
</div>
</div>
&#13;
答案 4 :(得分:1)
Array.prototype.filter.call(document.querySelector('#outside').childNodes, function (node) {
return node.nodeValue;
});
你也可以在Vanilla中尝试这个,如果你在div之后有其他字符串,它也会处理一个案例。
答案 5 :(得分:0)
可能有更好的方法可以做到这一点,但这应该适合你:
var kids = $("#outside").children();
for(var i = 0; i < kids.length; i++)
{
if(kids[i].nodeType != 3)
{
$(kids[i]).remove();
}
}
alert($("#outside").text());
请参阅此JSFiddle:http://jsfiddle.net/ez4v83v5/1
答案 6 :(得分:0)
尝试jquery api 孩子,试试fiddle
$(document).ready(function(){
alert($('#outside').clone() //clone the element
.children() //select all the children
.remove() //remove all the children
.end() //again go back to selected element
.text());
});
希望它有所帮助...