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

2022-08-30 01:35:22

我很难从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


答案 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中正确执行此操作,大约有7个回退案例。XmlHttpRequest


答案 2

编辑:似乎我错误地假设你无法获得该元素。正如其他人在这里发布的那样,您可以使用以下命令获得它:

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

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