首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从jQuery选择器获取DOM元素?

如何从jQuery选择器获取DOM元素?
EN

Stack Overflow用户
提问于 2009-11-05 10:00:20
回答 3查看 188.2K关注 0票数 186

我发现从jQuery选择器中获取实际的DOMElement是非常困难的。

示例代码:

<input type="checkbox" id="bob" />
var checkbox = $("#bob").click(function() { //some code  } )

在另一段代码中,我试图确定复选框的校验值。

  if ( checkbox.eq(0).SomeMethodToGetARealDomElement().checked )
    //do something.

还有,我不想这样做:

  if ( checkbox.eq(0).is(":checked"))
    //do something

这让我绕过了复选框,但其他时候我需要真正的DOMElement

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-05 10:11:36

您可以使用以下命令访问原始DOM元素:

$("table").get(0);

或者更简单地说:

$("table")[0];

然而,(根据我的经验)实际上你并不需要这么做。以复选框为例:

$(":checkbox").click(function() {
  if ($(this).is(":checked")) {
    // do stuff
  }
});

更“jquery‘is”和(imho)更简洁。如果你想给它们编号呢?

$(":checkbox").each(function(i, elem) {
  $(elem).data("index", i);
});
$(":checkbox").click(function() {
  if ($(this).is(":checked") && $(this).data("index") == 0) {
    // do stuff
  }
});

其中一些功能也有助于掩盖浏览器之间的差异。有些属性可以是不同的。典型的例子是AJAX调用。为了在原始的Javascript中正确地做到这一点,XmlHttpRequest有大约7种备用用例。

票数 278
EN

Stack Overflow用户

发布于 2009-11-05 10:14:43

编辑:看起来我假设你不能得到元素是错误的。正如其他人在这里发布的那样,你可以通过以下方式获得它:

$('#element').get(0);

我已经验证了这实际上返回了匹配的DOM元素。

票数 8
EN

Stack Overflow用户

发布于 2014-02-26 05:36:50

我需要将元素作为字符串获取。

jQuery("#bob").get(0).outerHTML;

这将为您提供类似以下内容:

<input type="text" id="bob" value="hello world" />

...as一个字符串而不是一个DOM元素。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1677880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档