Javascript jQuery没有';找不到现有元素
我有以下问题,我的网站上有一个下拉列表。但因为我想给它添加风格,我把它藏了起来,并在上面显示了一个bootsrap下拉列表。Javascript jQuery没有';找不到现有元素,javascript,jquery,html,magento,Javascript,Jquery,Html,Magento,我有以下问题,我的网站上有一个下拉列表。但因为我想给它添加风格,我把它藏了起来,并在上面显示了一个bootsrap下拉列表。 这是我的html结构: <div class="input-box"> <select name="super_attribute[139]" id="attribute139" class="required-entry super-attribute- select selectpicker" style="display: none;"
这是我的html结构:
<div class="input-box">
<select name="super_attribute[139]" id="attribute139" class="required-entry super-attribute- select selectpicker" style="display: none;">
<option value="">Maat_dames</option>
<option value="44" price="0">s</option>
<option value="43" price="0">m</option>
<option value="42" price="0">l</option>
<option value="41" price="0">xl</option>
<option value="40" price="0">2xl</option>
<option value="39" price="0">3xl</option>
<option value="38" price="0">4xl</option>
</select>
<!-- The normal dropdown -->
<!-- The bootstrap dropdown -->
<div class="btn-group bootstrap-select required-entry super-attribute-select">
<button type="button" class="btn dropdown-toggle selectpicker btn-default" data-toggle="dropdown" data-id="attribute139" title="Maat_dames">
<span class="filter-option pull-left">Maat_dames</span>
<span class="caret"></span>
</button>
<div class="dropdown-menu open">
<ul class="dropdown-menu inner selectpicker" role="menu">
<li data-original-index="0" class="selected">
<a tabindex="0" class="" data-normalized-text="<span class="text">Maat_dames</span>">
<span class="text">Maat_dames</span>
<span class="glyphicon glyphicon-ok check-mark"></span>
</a>
</li>
</ul>
</div>
</div>
当我检查控制台日志时,它在所有三种情况下都返回fail,因此找不到元素。为什么会这样
编辑
所有答案都建议删除span
和.filter option
之间的空格,虽然它在我的站点上不起作用,但当我尝试在JSFIDLE中重新创建注释en中的代码片段时,它确实起作用
可能是jQuery找不到元素,因为它是由插件动态创建的吗?将jQuery('span.filter option')
替换为jQuery('span.filter option')
当前jQuery('span.filter option')
正在DOM中查找带有类filter oprion的元素
当您编写jQuery('span.filter option')
时,它将在DOM中找到span带有类filter option的元素。将jQuery('span.filter option')
替换为jQuery('span.filter option')
当前jQuery('span.filter option')
正在DOM中查找带有类filter oprion的元素
当您编写jQuery('span.filter option')
时,它将在DOM中找到带有类filter option的span元素。您使用的是(一个空格)
span.filter选项
是指作为类filter选项成员的任何元素,并且其祖先是span
文档中属于该类的唯一元素是跨度本身,并且没有也属于跨度的祖先
从选择器中删除空格
if(jQuery('span.filter option').length==0){console.log(“fail”)}else{console.log(“success”);}
if(jQuery('span.filter option.pull left').length==0){console.log(“fail”)}else{console.log(“success”);}
if(jQuery('span.filter option.pull left').length==0){console.log(“fail”)}else{console.log(“success”);}
夫人
s
M
L
xl
2xl
3xl
4xl
夫人
您正在使用(空格)
span.filter选项
是指作为类filter选项成员的任何元素,并且其祖先是span
文档中属于该类的唯一元素是跨度本身,并且没有也属于跨度的祖先
从选择器中删除空格
if(jQuery('span.filter option').length==0){console.log(“fail”)}else{console.log(“success”);}
if(jQuery('span.filter option.pull left').length==0){console.log(“fail”)}else{console.log(“success”);}
if(jQuery('span.filter option.pull left').length==0){console.log(“fail”)}else{console.log(“success”);}
夫人
s
M
L
xl
2xl
3xl
4xl
夫人
('span.filter option')。长度
可能?('span.filter option')。长度
可能?span和.filter选项之间的空间是问题。删除它,使其成为span.filter-option,因为它使用该类表示span元素。如果在span和之间添加空格,则将查找span元素内部某个具有class.filter选项的元素span和.filter选项之间的空格是问题。删除它,使其成为span.filter-option,因为它使用该类表示span元素。如果在两个元素之间添加空格,则您正在使用class.filter选项查找span元素中的某个元素该元素仍然未找到能否在fiddle demo中复制该元素?能否在fiddle demo中复制该元素?因此,如果您与其他人同时发布答案,你会得到否决票吗?我不是否决票,但你的答案不完整,添加为什么操作码不起作用以及为什么这一个起作用如果你发布了一个格式不正确的操作码,读起来像是一个发现差异的游戏,没有解释为什么它是解决方案,并指出这是一个猜测……是的。@Quentin它仍然回答了这个问题,尽管如此,两者都是一回事。别那么迂腐了。在3行代码中不难发现差异。不管怎么说,这是你的意见,OP决定他们想要什么。因此,如果你和其他人同时发布答案,你会得到否决票?我不是否决票,但你的答案不完整,添加为什么OP代码不起作用以及为什么这个代码起作用如果你发布一个格式不正确的答案,读起来像是一个发现差异的游戏,没有解释为什么它是解决方案,并表明这是一个猜测……是的。@Quentin它仍然回答了这个问题,尽管如此。两者都是一样的东西。别那么迂腐了。在3行代码中不难发现差异。不管怎样,这是你的意见,OP决定他们想要什么。
if(jQuery('span .filter-option').length == 0){console.log("fail")}
if(jQuery('span .filter-option.pull-left').length == 0){console.log("fail")}
if(jQuery('span .filter-option .pull-left').length == 0){console.log("fail")}