我正在创建一个在变量中存储元素ID的变量。我可以这样写:
var webappData = document.getElementById('web-app-data');
如果我想使用jQuery做同样的事情,我想我会这样写:
var webappData = $('#web-app-data');
然而,当我尝试它并不起作用时。 (脚本会抛出错误,因为变量不会选择带有该Id的div
。)
我如何使用jQuery选择元素并将其存储在变量中?
答案 0 :(得分:2)
document.getElementById('web-app-data')
与$('#web-app-data')
不同。后者返回jQuery对象,它是HTMLElement
个对象的数组(在你的情况下只有一个)。
如果您想获得HTMLElement
,请使用$('#web-app-data')[0]
。检查:
document.getElementById('web-app-data') === $('#web-app-data')[0]; // true
答案 1 :(得分:1)
没关系..也许你的代码还有别的错误..
示例:
<div id="web-app-data">
Hello
</div>
<script type='text/javascript'>
var webappData = $('#web-app-data');
alert(webappData.text()); // Hello
</script>
答案 2 :(得分:0)
上面的代码应该可以正常工作。您的问题可能是,jQuery没有从DOM中找到任何相应的元素,因为该元素已被删除或尚未加载。如果你试着
console.log($('#web-app-data'));
那个变量,你可以检查jQuery是否真的发现了什么。如果相关元素确实在DOM atm中,则jQuery对象应该具有(至少)一个长度。
答案 3 :(得分:0)
这将起作用,你就像使用完整的JQuery选择器一样。
var elm = $('#webappData');
if (elm.hasClass('someClass')) elm.removeClass('someClass');
return;