javascript - 查找包含特定 CSS 属性的父项

标签 javascript jquery html css

我需要找到包含以下 css 属性的最近的父级:

background-image: url(*here goes a link to a valid image*);

找到它可能是通过选择所有元素,在数组中过滤它们,然后使用数组的第一个/最后一个元素来完成的,但我想知道是否有更快的方法来选择最接近满足条件的父元素我之前提到的要求,像这样:

<parent1 style="background-image:url(http://google.com/images/photo.png);">
        <parent2 style="background-image:url('http://google.com/images/photo.png');">
                <mydiv></mydiv>
        </parent2>
</parent1>

我要选择parent2;

请记住,我不知道后台网址

最佳答案

您可以扩展 jQuery 选择器来实现这一点。以及您的特定规则。

是这样的:

$.extend($.expr[':'], {
  backgroundValid: function(a) {
    //change the url for what you want
    return $(a).css('background-image') === "url(http://stacksnippets.net/validurl)";
  }
});

var test = $('.foo').closest('div:backgroundValid');

console.log(test) //prints bar
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="background-image:url('validurl');">
  <div class="bar" style="background-image:url('validurl');">
    <div class="foo"></div>
  </div>
</div>

关于javascript - 查找包含特定 CSS 属性的父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651777/

相关文章:

javascript - "on change"以编程方式选择选项时不会触发

javascript - 以 3 个字母为前缀的六位数字的正则表达式

javascript - typescript 路径无法解析

javascript - 使用 SAPUI5 在下拉列表中选择默认值

javascript - 无法加载资源错误 : the server responded with a status of 404(not found)

css - 如何将 CSS url 设置为绝对位置?

javascript - 将 Javascript 变量传递给 PHP

javascript - jQuery。 .load() 不会给出响应/状态

JQuery 更改所有元素文本

jquery - 如何找到附加了特定类的 tr 并获取每个 td 的详细信息 - jquery