最も近いのは、DOM のように下方向ではなく上方向に検索することfind
です。
最も近いドキュメント:
説明: セレクターに一致する最初の要素を取得します。現在の要素から始まり、DOM ツリーを上に向かって進みます。
find docs:
説明: セレクター、jQuery オブジェクト、または要素によってフィルター処理された、一致する要素の現在のセット内の各要素の子孫を取得します。
したがって、text1 の場合は次のようにclosest
なり、text2 の場合は次のようになりますfind
。
function getDomPartUp(text,htmlTag){
return $(text).closest(htmlTag).html();
}
function getDomPartDown(text,htmlTag){
return $(text).find(htmlTag).html();
}
var text1='<object>some text + html elements </object>';
var text2='<div><object>some text + html elements </object></div>';
alert(getDomPartUp(text1,'object'));
alert(getDomPartDown(text2,'object'));
.html
必要なテキストを取得するために使用します。
JSFiddle DEMO
アップデート:
1 つの方法でそれを行うには:
function search(text,htmlTag){
var $up = $(text).closest(htmlTag);
if ($up.length > 0)
return $up.html();
var $down = $(text).find(htmlTag);
return $down.length > 0 ? $down.html() :"";
}
var text1='<object>some text + html elements </object>';
var text2='<div><object>some text + html elements </object></div>';
alert(search(text1,'object'));
alert(search(text2,'object'));
JSFiddle DEMO