我发现从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
。
发布于 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种备用用例。
发布于 2009-11-05 10:14:43
编辑:看起来我假设你不能得到元素是错误的。正如其他人在这里发布的那样,你可以通过以下方式获得它:
$('#element').get(0);
我已经验证了这实际上返回了匹配的DOM元素。
发布于 2014-02-26 05:36:50
我需要将元素作为字符串获取。
jQuery("#bob").get(0).outerHTML;
这将为您提供类似以下内容:
<input type="text" id="bob" value="hello world" />
...as一个字符串而不是一个DOM元素。
https://stackoverflow.com/questions/1677880
复制相似问题