jQuery选择器麻烦

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

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', ... 

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

你可以做的是:

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

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

见: http : //jsfiddle.net/dE9Yb/1/