最接近的是向上搜索 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 演示
更新:
用一种方法做到这一点:
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 演示