使用jQuery Selector作为变量

时间:2014-05-07 20:02:24

标签: javascript jquery variables

我正在创建一个在变量中存储元素ID的变量。我可以这样写:

var webappData = document.getElementById('web-app-data');

如果我想使用jQuery做同样的事情,我想我会这样写:

var webappData = $('#web-app-data');

然而,当我尝试它并不起作用时。 (脚本会抛出错误,因为变量不会选择带有该Id的div。)

我如何使用jQuery选择元素并将其存储在变量中?

4 个答案:

答案 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>

Fiddle

答案 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;