如何按样式属性查找元素?

use*_*681 4 css jquery jquery-selectors

我无法按样式属性检索元素.我有ul几个li元素,我想找到一个具有值的样式属性的元素display:list-item.我试图通过几种方式来解决这个问题,包括以下方面,但我不断得到一个空对象.我没有标题属性的问题.不确定我做错了什么.

$('li[style*=display:list-item]')
Run Code Online (Sandbox Code Playgroud)

HTML:

<ul class="bjqs" style="height: 200px; width: 100%;">
    <li class="bjqs-slide" style="height: 200px; width: 100%; display: list-item;">
Run Code Online (Sandbox Code Playgroud)

Dav*_*mas 6

您的选择器是空白区域敏感的,因为属性中有空格,您在选择器中也需要它:

$('li[style*="display: list-item"]')
Run Code Online (Sandbox Code Playgroud)

最简单的方法是减少精确匹配字符串的问题,如果你根据特定的CSS属性过滤元素,则使用 filter():

$('li').filter(function(){
    return $(this).css('display') === 'list-item';
});
Run Code Online (Sandbox Code Playgroud)

参考文献:


Jam*_*lly 5

两个问题:

  1. 在您的 HTML 中,“display:”和“list-item”之间有一个空格。
  2. 您的选择器需要用引号括起来""

只需更改您的选择器以包含此空格并将其括在引号中:

$('li[style*="display: list-item"]')
Run Code Online (Sandbox Code Playgroud)

JSFiddle 演示