小编典典

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

all

我很难DOMElement从 jQuery 选择器中找出实际情况。

示例代码:

<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.


阅读 117

收藏
2022-07-27

共1个答案

小编典典

您可以通过以下方式访问原始 DOM 元素:

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

或更简单地说:

$("table")[0];

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

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

更“jquery’ish”和(恕我直言)更简洁。如果你想给它们编号怎么办?

$(":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.

2022-07-27