我需要帮助来理解为什么这些事情表现得很奇怪:
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',
...
答案 0 :(得分:1)
所以,基本上,你是这样做的:$(['div.entry]).text();
我猜你正在传递一个你正在调用它的数组:http://api.jquery.com/jQuery/#jQuery-elementArray这意味着要获取一个数组< em> elements ,而不是选择器数组。你可以在这里看到这个爆炸:http://jsfiddle.net/dE9Yb/。
你可以做的是:
alert($(Thesaurus.options.containers.join(",")).text());
因此,传入一个由逗号连接的选择器的字符串。