当前位置: 首页 > 面试题库 >

如何从JQuery选择器获取DOM元素

施晗日
2023-03-14
问题内容

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


问题答案:

您可以使用以下方法访问原始DOM元素:

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

或更简单地说:

$("table")[0];

实际上,根据我的经验,实际上并不需要很多。以您的复选框为例:

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

更“ jquery’ish”和(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中正确执行此操作,有大约7个后备案例XmlHttpRequest



 类似资料:
  • 问题内容: 您可以使用鼠标选择网页的一部分。 我知道可以获取当前选择的文本,但是如何获取包含当前选择的开始或结束的DOM元素? 问题答案: 在IE中,使用document.selection.createRange()。parentElement(),在实际的浏览器中,使用window.getSelection()。getRangeAt(0).startContainer.parentNode。像

  • 问题内容: 我想创建一个类似记录器的东西,它可以跟踪用户的所有动作。为此,我需要确定用户与之交互的元素,以便在以后的会话中可以引用这些元素。 我用伪代码说过,我希望能够做以下事情 HTML示例(可能很复杂): 用户单击链接之类的内容。现在,我需要确定被单击的元素并将其位置保存在DOM树中,以备后用: 现在,uniqueSelector应该是这样的(我不在乎它是xpath还是css选择器样式): 这

  • 问题内容: 在我的项目中,我在sqllite数据库中保存毫秒,默认情况下,我保存 在数据库中,但是用户可以从日期选择器中选择以前的日期吗?但是,当用户从日期选择器中选择前一个或以后的几天时,我可以保存什么呢?如何获得长(毫秒)格式的那一天? 问题答案: 创建一个实例并设置所需的日期。然后致电。有关更多信息,请参见前面的SO问题的答案。 编辑 要设置日历日期,您可以使用以下方法: 有关更多信息,请参

  • 给定以下标记: 如何在。分隔符后选择类。first和。second?我尝试了以下几点: 然而,这似乎并不奏效。我以为这是这样的,从左到右: 既然它不能工作,我想我误解了其中一个选择器的功能。感谢任何帮助(或这方面的替代方案)。 PS: 标记来自外部源。虽然我可以在技术上用JS添加一个类,但如果可能的话,我更倾向于不添加。我也尝试过使用“:not”选择器,但我也没有得到它的工作。 谢谢 编辑: 在屏

  • 我有一个超文本标记语言选择框,在我的jsp中启用了多选择。我从其他按钮动态填充选项。因此,用户不会从该选择框中选择任何值。我必须将selectbox的所有值传递给其他jsp。 我正在使用表单操作提交浏览jsp。这样做时,我无法获得所有的选择框值。 此选项仅提供该多选框中的选定值。我想要的是从selectbox中获取所有值,无论是否选中。 谢谢

  • 我需要获得一个DOM元素的XPath来持久化它,这样我就可以查找该元素。 我已经尝试了这个答案的方法,但是当我用jQuery创建的对象调用该方法时... ...我得到这个错误: 未捕获的TypeError:无法读取未定义(…)的属性“子节点” 我尝试将替换为,将替换为,将替换为,但我收到未定义为函数结果的... 那么,您是否有一个与类似的函数可以使用jQuery呢?