Jquery 为什么';这个选择器不行吗?
我想选择属于.view类的所有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){
中的所有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
处理程序中(相同或另一个)。否则,它将在调用按钮()
之前运行,即使它位于页面中所有其他脚本的下方。