Javascript .addClass()不在()jQuery的内部工作
更新-最终解决方案 感谢所有帮助我解决这个问题的人特别感谢@Pranav通过电子邮件提供的所有帮助。您的所有答案似乎都在JSFIDLE中有效,但我无法在本地服务器上复制它 我的问题是,我的js文件在PHP完成动态添加元素和类之前启动。我可以通过调用以下命令(无需使用事件处理程序)解决此问题:Javascript .addClass()不在()jQuery的内部工作,javascript,jquery,Javascript,Jquery,更新-最终解决方案 感谢所有帮助我解决这个问题的人特别感谢@Pranav通过电子邮件提供的所有帮助。您的所有答案似乎都在JSFIDLE中有效,但我无法在本地服务器上复制它 我的问题是,我的js文件在PHP完成动态添加元素和类之前启动。我可以通过调用以下命令(无需使用事件处理程序)解决此问题: ( function() { jQuery(window).load( function($) { // Add stuff }); })(jQuery); 这似乎要等到PHP完成任务后再启动
( function() {
jQuery(window).load( function($) {
// Add stuff
});
})(jQuery);
这似乎要等到PHP完成任务后再启动。我可以在DevTools面板中看到这些更改
我也没有意识到Wordpress似乎真的不喜欢$,而是更喜欢jQuery,所以我不得不创建$=jQuery
变量来解决这个问题
再次感谢大家。我刚刚开始学习jQuery和Javascript,这是一个很好的教训
原始问题 我正试图根据WooCommerce提供的类向选择框选项添加类。(原因是我放弃了指向无法工作的“禁用”属性。) 出于某种原因,我使用的代码没有添加任何类
jQuery(文档).ready(函数($){
//链接和可见下拉列表的类
$selectclass='turnintodropdown';//用于标识所选内容的类
$listclass='turnitoselect';//用于标识ULs的类
$boxclass='dropcontainer';//父元素
$triggeron='activetrigger';//活动触发器链接的类
$triggeroff='trigger';//非活动触发器链接的类
$dropdownclosed='dropdownhidden';//关闭的下拉列表
$dropdownopen='dropdownvisible';//打开下拉菜单
$i=0;
$count=0;
$sels=$('select');
$opts=$('option');
$trigger=(“”);
函数$switchTriggerClass(){
$($trigger).toggleClass($triggeron).toggleClass($triggeroff);
}
对于($i;$iInside for loop此
不是指元素,它可能是窗口
对象或其他东西。您可以使用方法解决此问题
- -
10
20
30
40
50
60
内部for循环此
不是指它可能是窗口
对象或其他对象的元素。您可以使用方法解决此问题
- -
10
20
30
40
50
60
您必须从
for($i; $i<$opts.length; $i++){
if($($opts).hasClass('enabled')){
$(this).addClass('woo');
}
else {
$(this).addClass('foo');
}
}
另一种方法是:
$('option.enabled').addClass('woo');
$opts.not('.enabled').addClass('foo');
您必须从更改代码块
for($i; $i<$opts.length; $i++){
if($($opts).hasClass('enabled')){
$(this).addClass('woo');
}
else {
$(this).addClass('foo');
}
}
另一种方法是:
$('option.enabled').addClass('woo');
$opts.not('.enabled').addClass('foo');
如果您需要其他选择,则可以使用foreach
$opts.each(function(){
if(($(this)).hasClass('enabled')){
$(this).addClass('woo');
}
else {
$(this).addClass('foo');
}
})
如果您需要其他选择,则可以使用foreach
$opts.each(function(){
if(($(this)).hasClass('enabled')){
$(this).addClass('woo');
}
else {
$(this).addClass('foo');
}
})
试试这种方法
$sels.find('option').each(function() {
if($(this).hasClass('enabled')) {
$(this).addClass('woo');
} else {
$(this).addClass('foo');
}
});
试试这种方法
$sels.find('option').each(function() {
if($(this).hasClass('enabled')) {
$(this).addClass('woo');
} else {
$(this).addClass('foo');
}
});
循环的In side for loop此
不会提供循环中的当前元素。您需要使用$($opt[$i]).hasClass()
才能访问选择框中的选项
jQuery(文档).ready(函数($){
//链接和可见下拉列表的类
$selectclass='turnintodropdown';//用于标识所选内容的类
$listclass='turnitoselect';//用于标识ULs的类
$boxclass='dropcontainer';//父元素
$triggeron='activetrigger';//活动触发器链接的类
$triggeroff='trigger';//非活动触发器链接的类
$dropdownclosed='dropdownhidden';//关闭的下拉列表
$dropdownopen='dropdownvisible';//打开下拉菜单
$i=0;
$count=0;
$sels=$('select');
$opts=$('option');
$trigger=(“”);
函数$switchTriggerClass(){
$($trigger).toggleClass($triggeron).toggleClass($triggeroff);
}
对于($i;$i<$opts.length;$i++){
if($($opts[$i]).hasClass('enabled')){
$($opts[$i]).addClass('woo');
}
否则{
$($opts[$i]).addClass('foo');
}
}
});
大小
- -
10
20
30
40
50
60
循环的内部此
不会提供循环中的当前元素。您需要使用$($opt[$i]).hasClass()
才能访问选择框中的选项
jQuery(文档).ready(函数($){
//链接和可见下拉列表的类
$selectclass='turnintodropdown';//用于标识所选内容的类
$listclass='turnitoselect';//用于标识ULs的类
$boxclass='dropcontainer';//父元素
$triggeron='activetrigger';//活动触发器链接的类
$triggeroff='trigger';//非活动触发器链接的类
$dropdownclosed='dropdownhidden';//关闭的下拉列表
$dropdownopen='dropdownvisible';//打开下拉菜单
$i=0;
$count=0;
$sels=$('select');
$opts=$('option');
$trigger=(“”);
函数$switchTriggerClass(){
$($trigger).toggleClass($triggeron).toggleClass($triggeroff);
}
对于($i;$i<$opts.length;$i++){
if($($opts[$i]).hasClass('enabled')){
$($opts[$i]).addClass('woo');
}
否则{
$($opts[$i]).addClass('foo');
}
}
});
大小
- -
10
20
30
40
50
60
if($($opts[$i]).hasClass('enabled'))
还有这个上下文是哪个?注意,美元符号用于将变量标记为jQuery对象。如果只有jQuery对象以美元符号作为前缀,您会立即知道它是jQuery对象还是其他对象。