子が強い、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