我很难DOMElement从 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”和(恕我直言)更简洁。如果你想给它们编号怎么办?
$(":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.
XmlHttpRequest