jQuery选择器的麻烦

时间:2014-02-05 19:03:15

标签: jquery jquery-selectors

我需要帮助来理解为什么这些事情表现得很奇怪:

alert($('div.entry').text());                   returns some long text
alert(Thesaurus.options.containers);            returns string div.entry
alert($(Thesaurus.options.containers).text());  breaks with Uncaught RangeError: Maximum call stack size exceeded

HTML在少数div.entry元素中不到500字。

Thesaurus.options.containers看起来像这样:

jQuery.Thesaurus({
        caseSentitive: false,
        zetind: 'auto',
        delay: 250, 
        containers: ['div.entry'],
        effect: 'slide',
...

1 个答案:

答案 0 :(得分:1)

所以,基本上,你是这样做的:$(['div.entry]).text();我猜你正在传递一个你正在调用它的数组:http://api.jquery.com/jQuery/#jQuery-elementArray这意味着要获取一个数组< em> elements ,而不是选择器数组。你可以在这里看到这个爆炸:http://jsfiddle.net/dE9Yb/

你可以做的是:

alert($(Thesaurus.options.containers.join(",")).text());

因此,传入一个由逗号连接的选择器的字符串。

请参阅: http://jsfiddle.net/dE9Yb/1/