2017-07-07 22 views
-1

在下一个网页中,我想用jquery选择所有<li>元素。 我要选择那些内<ul class=search-result-gridview-items"> https://www.walmart.com/browse/home-improvement/air-quality/1072864_133032_1231459jquery选择器不会给出所有元素

我已经尝试了所有的产品:

$(".search-product-result ul li") 
$("ul.search-result-gridview-items li") 

我也有尝试:

$("li") 
$("ul li") 
$("section li") 

选择所有<li>,没有工作。 他们都给一个<li>而不是全部。

为什么会发生这种情况?

+0

在链接的网页来获取所有的元素,你肯定jQuery是加载和$是不是别的别名? –

+2

如果您使用的是Chrome开发工具控制台,$等价于'document.querySelector()',并且只返回** first **元素。如果你有实际的jQuery加载你的选择器将返回所有相应的元素。 jQuery可能无法在其页面上加载。看到这个[问题](https://stackoverflow.com/questions/14308588/simple-jquery-selector-only-selects-first-element-in-chrome) –

+0

does' $(“li”)。length' returns 1 ? –

回答

3

因为网站没有使用jQuery。 console.log(window.jQuery)返回undefined

最大的可能是$被绑定到某个函数

您可以使用vanila使用JavaScript

document.querySelectorAll('ul.search-result-gridview-items li') 
0

如果这是您在网站上获得的实际HTML代码,则问题很可能是<ul>上的类声明。

你应该注意到它是<ul class=search-result-gridview-items">它应该是<ul class="search-result-gridview-items">

你错过了类名之前的双引号。

+2

这并不能解释为什么'$(“li”)'只产生一个项目。 –

+0

@NiettheDarkAbsol它可能会做 - 如果缺少报价后的所有内容都被解析为一个很长的字符串。 – Jamiec

+1

没有看到OP正在使用的HTML的完整样本,这是一个有争议的问题。我们最终猜测。 – Ryan

0

$('.search-result-gridview-items').children似乎为我

-2

你尝试使用子选择(“父>子”)工作吗?

$(".search-product-result > li") 

检查更多的信息在这里: https://api.jquery.com/category/selectors/hierarchy-selectors/

+0

'ul'有class'search-result-gridview-items',所以'search-product-result'是'ul'的父亲,所以这不起作用,因为'li'必须是一个'ul'。 –

相关问题