Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryfind的奇怪行为_Javascript_Jquery - Fatal编程技术网

Javascript jqueryfind的奇怪行为

Javascript jqueryfind的奇怪行为,javascript,jquery,Javascript,Jquery,我得到了这段javascript代码,它在我的一个网站上运行得非常完美,但在其他网站上却出现了问题 $(document).ready(function(){ if ($.find(Thesaurus.options.containers).length > 0) { thes = new Thesaurus(Thesaurus.options); } }); 以下是我尝试使用老式警报进行调试时的结果: alert(同义词库.op

我得到了这段javascript代码,它在我的一个网站上运行得非常完美,但在其他网站上却出现了问题

$(document).ready(function(){
        if ($.find(Thesaurus.options.containers).length > 0) {
            thes = new Thesaurus(Thesaurus.options);
        }
});
以下是我尝试使用老式警报进行调试时的结果:

  • alert(同义词库.options.containers)-返回字符串div.content
  • 警报($.find(Thesaurus.options.containers))-此参数返回空值,因此长度为零
  • 警报($.find('div.content')-这一个返回我所期望的[object htmldevelment]

我似乎无法理解正在发生的事情。

在jQuery中没有方法
$。find()


如果您访问jQUery的网页,您可以看到您使用了错误的$。查找。。。这里有一个使用方法的示例

 <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>
您需要更改代码,如下所示:

   if ($(document).find(Thesaurus.options.containers).length > 0) {
        thes = new Thesaurus(Thesaurus.options);
    }
希望这能奏效


关于

什么是
$。查找
?我没有在jQuery中看到它。请告诉我
$。find
不是公共API;这是对Sizzle的引用。它不应该被使用。我的坏。然而,由于正确的答案在它工作时返回[object object]而不是[object HtmlDevice],因此进一步的处理被中断了,所以这里有些令人毛骨悚然的地方。。。或者干脆
$(Thesaurus.options.containers)
好。简化后的表单可以正常工作,但是会发生这种情况:警报($(Thesaurus.options.containers));返回[object object]而不是[object HtmlDivelment]有什么想法吗?@RichardVencu jQuery调用的返回值应该是对象(jQuery对象),而不是DOM节点。谢谢。我通过将一个变量硬编码到javascript函数中(丑)解决了这个问题。这里描述了这个实验
 <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>
$( "li.item-ii" ).find( "li" ).css( "background-color", "red" );
   if ($(document).find(Thesaurus.options.containers).length > 0) {
        thes = new Thesaurus(Thesaurus.options);
    }