在复杂的hml字符串查找指定标签或者内容时,可以用字符串截取,也可以用正则表达式,也可以用xpath,但是大家都忽略了jquery的查找方式,jquery中的$(selector)可以在dom中选择元素,其实这个方法是可以填写两个参数的,
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
return new jQuery.fn.init( selector, context );
}
只是正常使用只填写了一个,都以当前打开的文档为上下文环境。我们可以将我们要查找的字符串环境转化为dom对象,并构造出选择器selector,以$(selector,dom)的方式获取到对象。------一下是工作代码的部分截取
function getStrDomElem(selector,domStr){
var parser=new DOMParser();
//将传入的domStr转化为dom对象
var htmlDoc=parser.parseFromString(domStr,"text/html");
return $(selector,htmlDoc.body)[0];
}
下面给出一个示意参考代码和运行截图
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
var html="<ul id='ul'>\n" +
"\t\t<li>23123</li>\n" +
"\t\t<li>23123</li>\n" +
"\t\t<li>23123</li>\n" +
"\t\t<li class='canFind'>你能找到我么?</li>\n" +
"\t\t<li>23123</li>\n" +
"\t\t<li>23123</li>\n" +
"\t</ul> ";
var elem=getStrDomElem('.canFind',html);
alert(elem.innerHTML);
function getStrDomElem(selector,domStr){
var parser=new DOMParser();
//将传入的domStr转化为dom对象
var htmlDoc=parser.parseFromString(domStr,"text/html");
return $(selector,htmlDoc.body)[0];
}
});
</script>
运行演示截图