子が強い、div、ヘッダー、またはその他の可能性がある子が1つしかない親divがあるユースケースがあります...子「Hello World」のinnerHTMLを取得するための一般的なソリューションが必要です
<div id="parent">
<strong>Hello World</strong>
</div>
jqueryまたはjsでこれを行う効率的な方法は何ですか???
子が強い、div、ヘッダー、またはその他の可能性がある子が1つしかない親divがあるユースケースがあります...子「Hello World」のinnerHTMLを取得するための一般的なソリューションが必要です
<div id="parent">
<strong>Hello World</strong>
</div>
jqueryまたはjsでこれを行う効率的な方法は何ですか???
document.getElementById('parent').children[0].innerHTML
$("#parent").children();
$("#parent").children(':first');
常に最初の子である場合は、 を実行する$('#parent').children().first().text()
か、すべての子を取得するには$('#parent').children().text()
.
jQueryでこれを試してください:-
$("#parent").contents().filter(function(){
return this.nodeType == 3;
});
ネイティブを使用する提案にchildNodes[0]
はバグがあります。
HTML の例では、必要な要素textNode
の前に表示される があります。<strong>
非に到達するまで、childNodes をループする必要がありますtextNode
。を試した場合も同じ問題が発生します.firstChild
。
この例ではネイティブ DOM.children
プロパティが機能しますが、注意してください。IE8 以前のバージョンでは、コメント ノードも含まれます。
jQuery の.children()
メソッドは、テキスト ノードをフィルターで除外するため、はるかに簡単な方法です。
jQuery をcontents()
と組み合わせて使用.filter
してテキスト ノードを除外するという提案は機能しますが、不要です。代わりに を使用.children()
して、テキスト ノードを除外する作業を実行させることができます。
jQueryでは簡単です....
$('#parent').children('strong').html();
jQuery:
$("#parent").children().html()
JavaScriptのみ:
document.getElementById("parent").childNodes[0].innerHTML