Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Jquery 为什么';这个选择器不行吗?_Jquery_Jquery Ui_Jquery Selectors - Fatal编程技术网

Jquery 为什么';这个选择器不行吗?

Jquery 为什么';这个选择器不行吗?,jquery,jquery-ui,jquery-selectors,Jquery,Jquery Ui,Jquery Selectors,我想选择属于.view类的所有中的所有jquery UI按钮。考虑到这一点,我编写了以下几段代码,它们都不是我想要的 我想要的是,就像我说的,返回类为.ui按钮的所有元素,它们位于类为.view的元素中 $(".view").find('.ui-button').each(function(index){ console.log(index); }) $(".view .ui-button").each(function(index){

我想选择属于.view类的所有
中的所有jquery UI按钮。考虑到这一点,我编写了以下几段代码,它们都不是我想要的

我想要的是,就像我说的,返回类为
.ui按钮的所有元素,它们位于类为
.view
的元素中

    $(".view").find('.ui-button').each(function(index){
        console.log(index);
    })

    $(".view .ui-button").each(function(index){
        console.log(index);
    })

    $(".view > .ui-button").each(function(index){
        console.log(index); 
    });
我拍了一张截图,所以你们可以看到里面确实有JqueryUI按钮

提前谢谢

编辑

在关闭标记之前,我已尝试将脚本的包含推到最后一件事。。还是没什么

然后我尝试了一些我在处理异步请求时通常会做的事情(这里是这样吗?)在延迟500毫秒的setTimeout调用中包装所有内容。。它成功了。


这有意义吗?

脚本何时运行?很可能是在jQueryUI库之前包含了它,这会导致您在添加类之前搜索它们


一般来说,自定义JavaScript文件和脚本应该放在最底部,就在关闭之前,脚本什么时候运行?很可能是在jQueryUI库之前包含了它,这会导致您在添加类之前搜索它们


一般来说,自定义JavaScript文件和脚本应该放在最底部,就在关闭

之前,我怀疑这是因为您正在调用jQueryUI函数
按钮()
,该函数在选择器运行后将类
ui按钮添加到元素中

参见示例,它表明这至少是可行的


因此,解决方案是确保在尝试使用
ui按钮
类进行操作之前调用
按钮
,或者使用其他类来标识您尝试选择的元素。第二点很重要;您必须已经在这些元素上有了另一个类,才能选择它们来应用
按钮()
函数。

我怀疑这是因为您正在调用jQueryUI函数
按钮()
,该函数在选择器运行后将类
ui按钮添加到元素中

参见示例,它表明这至少是可行的


因此,解决方案是确保在尝试使用
ui按钮
类进行操作之前调用
按钮
,或者使用其他类来标识您尝试选择的元素。第二点很重要;您必须已经在这些元素上有了另一个类,才能选择它们来应用
按钮()
函数。

“…它们都不能满足我的要求。”您能更具体地说明您的期望吗?选择器在我看来很好。用一个简单的例子:我明白了。知道为什么它对我不起作用吗?可能是jQuery在选择器运行后将该类添加到按钮中了吗?当我将所有调用包装在一个延迟为500毫秒的setTimeout中时,它起作用了……WTF“……它们都不是我想要的。”您能更具体地说明您的期望吗?选择器在我看来很好。用一个简单的例子:我明白了。知道为什么它对我不起作用吗?可能是jQuery在选择器运行后将该类添加到按钮中了吗?当我将所有调用包装在一个具有500毫秒延迟的setTimeout中时,它起作用了……wtf具体地说,只有可延迟的脚本才应该放在
位置,只能将可延迟的脚本放在
已将脚本包含到之前的最后一个位置。。仍然没有。@Felipe,如果调用
button()
的代码驻留在
ready
处理程序中,您必须确保问题中的代码也驻留在
ready
处理程序中(相同或另一个)。否则,它将在调用
按钮()
之前运行,即使它位于页面中所有其他脚本的下方。已将脚本包括推到前面的最后一个脚本。。仍然没有。@Felipe,如果调用
button()
的代码驻留在
ready
处理程序中,您必须确保问题中的代码也驻留在
ready
处理程序中(相同或另一个)。否则,它将在调用
按钮()
之前运行,即使它位于页面中所有其他脚本的下方。