在未注入 DOM 的 DIV 中按 id 查找元素

发布于 2024-08-25 17:48:56 字数 241 浏览 8 评论 0原文

我内存中有一个 DOM 元素,尚未注入到页面 DOM 中。 我想通过 id 在此 DOM 元素内查找元素,但 document.getElementById 不起作用,因为该元素尚未位于页面 DOM 中。

关于如何做到这一点有什么想法吗?

PS

  • 我知道一种方法是使用 element.querySelector() 但从 IE7 开始 不支持,我不能。
  • 不使用 Jquery

I have a DOM element in memory that is yet to be injected in the page DOM.
I want to lookup an element by id inside this DOM element but document.getElementById wont work as the element is not yet in the page DOM.

Any ideas on how to do this?

P.S.

  • I know one approach is to use
    element.querySelector() but since IE7
    doesnt support it, I can't.
  • Not using Jquery

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱已欠费 2024-09-01 17:48:56

浏览器是 IE 还是非 IE 有所不同。无论哪种情况,您都应该使用 XPath。对于 Firefox 和其他兼容的浏览器,您可以使用 evaluate 和 Xpath 查询,对于 IE,您可以使用 selectNodes。因此,它们在这里并排:

//Say you want an element with an id of "foo":
  var xpathQ = "//[@id='foo']";  // This is your query

  var myXML = someXMLsource;   // Get your XML  however you are getting it

 //Assuming non-IE

 var fooNode = myXML.evaluate(xpathQ, myXML, null, XPathResult.ANY_TYPE, null);

//Assuming IE

var fooNode = myXML.selectNodes(xpathQ);

然后对元素执行您需要执行的操作。我有点尴尬的是 IE 实际上让这一点变得更加清晰,但每只狗都有它的一天。

It differs on if the browser is IE or non-IE. In either case you should use XPath. For Firefox and other compliant browsers, you would use evaluate and the Xpath query, with IE, you use selectNodes. So here they are side by side:

//Say you want an element with an id of "foo":
  var xpathQ = "//[@id='foo']";  // This is your query

  var myXML = someXMLsource;   // Get your XML  however you are getting it

 //Assuming non-IE

 var fooNode = myXML.evaluate(xpathQ, myXML, null, XPathResult.ANY_TYPE, null);

//Assuming IE

var fooNode = myXML.selectNodes(xpathQ);

And then do what you need to do with the element. I'm a bit embarrassed that IE actually makes this more clear cut, but every dog has it's day.

好菇凉咱不稀罕他 2024-09-01 17:48:56

如果您使用 jQuery,则可以编写 $('#someId', divElement)

If you're using jQuery, you can write $('#someId', divElement).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文