jQuery的奇怪行为

时间:2014-02-05 16:56:08

标签: javascript jquery

我得到的这段javascript完全适用于我的某个网站,但却给其他网站带来了麻烦。

$(document).ready(function(){
        if ($.find(Thesaurus.options.containers).length > 0) {
            thes = new Thesaurus(Thesaurus.options);
        }
});

当我尝试使用旧式警报进行调试时,这些是结果:

  • alert(Thesaurus.options.containers); - 返回字符串 div.content
  • alert($.find(Thesaurus.options.containers)); - 这个返回为空,因此长度为零
  • alert($.find('div.content')); - 这个按预期返回 [object HTMLdivElement]

我似乎无法理解发生了什么。

2 个答案:

答案 0 :(得分:3)

jQuery中没有方法$.find() .find()

$(document).ready(function(){
        if ($(document).find(Thesaurus.options.containers).length > 0) {
            thes = new Thesaurus(Thesaurus.options);
        }
});

$(document).ready(function(){
        if ($(Thesaurus.options.containers).length > 0) {
            thes = new Thesaurus(Thesaurus.options);
        }
});

答案 1 :(得分:0)

如果您访问jquery的网页,您可以想象您使用了错误的$ .find ...这里是一个使用方法的示例。

 <ul class="level-1">
 <li class="item-i">I</li>
 <li class="item-ii">II
 <ul class="level-2">
 <li class="item-a">A</li>
 <li class="item-b">B
 <ul class="level-3">
 <li class="item-1">1</li>
 <li class="item-2">2</li>
 <li class="item-3">3</li>
 </ul>
 </li>
 <li class="item-c">C</li>
 </ul>
 </li>
 <li class="item-iii">III</li>
 </ul>

如果我们从第II项开始,我们可以在其中找到列表项: 1

$( "li.item-ii" ).find( "li" ).css( "background-color", "red" );

你需要改变你的代码:

   if ($(document).find(Thesaurus.options.containers).length > 0) {
        thes = new Thesaurus(Thesaurus.options);
    }

希望这有效。

此致