Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问尚未添加到DOM树的html字符串中的元素?_Javascript_Jquery_Templates_Dom_Jquery Selectors - Fatal编程技术网

Javascript 如何访问尚未添加到DOM树的html字符串中的元素?

Javascript 如何访问尚未添加到DOM树的html字符串中的元素?,javascript,jquery,templates,dom,jquery-selectors,Javascript,Jquery,Templates,Dom,Jquery Selectors,我正在加载一个HTML模板文件,其中包含我在整个应用程序中使用的模板。该文件如下所示: <!DOCTYPE html><html><head><title>static_listview_templates</title></head><body> <ul id="tmp_listview_basic" class="ui-listview"></ul> <ul id="tmp_li

我正在加载一个HTML模板文件,其中包含我在整个应用程序中使用的模板。该文件如下所示:

<!DOCTYPE html><html><head><title>static_listview_templates</title></head><body>
<ul id="tmp_listview_basic" class="ui-listview"></ul>
<ul id="tmp_listview_inset" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"></ul>

<li id="tmp_listview_divider" data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-bar-[theme] ui-corner-top"><span class="ui-divider-text"></span></li>
...
</body></html>
要从我的模板对象中选择元素?如果是,我如何访问和拉出其中一个sub_模板?如果没有,我将如何按ID选择支柱?我可以添加一个开始和结束标识符,但我不知道如何从头到尾地正则表达式

谢谢

编辑: 我的HTML模板:

 <!DOCTYPE html><html><head><title>static_listview_templates</title></head><body><form id="tmp_listview_filter" class="ui-listview-filter ui-bar-[theme] ui-listview-filter-inset" role="search"><div class="ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield ui-body-[theme]"><input placeholder="" data-type="search" class="ui-input-text ui-body-[theme]"><a title="" class="ui-input-clear ui-btn ui-btn-up-x ui-shadow ui-btn-corner-all ui-fullsize ui-btn-icon-notext ui-input-clear-hidden" href="#" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="delete" data-iconpos="notext" data-theme="[theme]" data-mini="false">><span class="ui-btn-text"></span><span class="ui-icon ui-icon-delete ui-icon-shadow">&nbsp;</span></span></a></div></form><ul id="tmp_listview_basic" class="ui-listview"></ul><ul id="tmp_listview_inset" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"></ul><li id="tmp_listview_divider" data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-bar-[theme] ui-corner-top"><span class="ui-divider-text"></span></li><li id="tmp_listview_item" data-filtertext="[filtertext]" data-theme="c" class="ui-li ui-btn ui-btn-icon-right ui-li-has-arrow ui-first-child ui-last-child ui-btn-up-[theme]"><div class="ui-btn-inner ui-li"><div class="ui-btn-text"><a href="[link]" class="ui-link-inherit">[link_content]</a></div><span class="ui-icon ui-icon-[link-icon] ui-icon-shadow">&nbsp;</span></div></li></body></html>
在将HTML字符串放入jQuery对象后,您可以在文档片段上使用el.find,但选择器“tmp\u listview\u divider”看起来是错误的。不应该有尾随

如果您向我们展示相关的HTML片段,我们可以帮助您获得正确的选择器

编辑:根据您现在添加到问题中的HTML,您应该能够使用以下内容:

el.find('#tmp_listview_divider')

这将实现以下目的:

var el = $('<div />').html(string).find('#tmp_listview_divider');
但前者可能更稳定,因为返回的模板包在一个元素或其他东西中


您必须执行其中一项操作,因为.find获取匹配元素的后代,因此$string将返回您的文档片段[,,…],然后.find将搜索title、ul、ul、li等的后代,以查找您不需要的tmp\u listview\u分隔符。您需要将其全部封装在一个元素中,您可以在第一个元素中找到。

ah。我想按id选择。最近Coldfusion变量太多。。。需要包装在。。。编辑。我将添加完整的代码。1节按id选择,只是一个前导。你的真实身份证上有一个密码吗?如果是这样,则必须使用\对其进行转义,这意味着您需要在javascript字符串声明中使用\\。模板中的id看起来很好。我可以控制我的tmp对象,它包含所有元素ultmp_listview_basic,ul…,但我无法访问它们。如果HTML是HTML的合法片段,el.find'tmp_listview_divider'的工作原理如您所见:.ha。那我的也要用了。谢谢你的帮助和帮助。回到搜索。我会张贴一旦我有它。
el.find('#tmp_listview_divider')
var el = $('<div />').html(string).find('#tmp_listview_divider');
var el = $(string).filter('#tmp_listview_divider');