选择不在锚点中的跨距

时间:2014-10-23 04:07:21

标签: javascript jquery jquery-selectors css-selectors selector

<span>Item 1</span>
<span>Item 2</span>
<a href="#"><span>Item 3</span></a>
<span>Item 4</span>
<a href="#"><span>Item 5</span></a>
<span>Item 6</span>

我将使用选择器的哪个王来选择未包含在锚标签中的跨距(在这种情况下为项目1,2,4和6。

2 个答案:

答案 0 :(得分:4)

jQuery主要使用css选择器,在css中我不认为有任何“父选择器”。但是,您可以在jquery的帮助下使用css选择器的组合来定位不像下面的锚子的span ...

$("span").not("a span");

$(function(){
    $("span").not("a span").css("background-color", "red");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<span>Item 1</span>
<span>Item 2</span>
<a href="#"><span>Item 3</span></a>
<span>Item 4</span>
<a href="#"><span>Item 5</span></a>
<span>Item 6</span>

答案 1 :(得分:0)

以下是我的方法

var sp = $('span');
var only = [];
for (var i = 0; i < sp.length; i++) {
    if ($(sp[i]).parent('a').length === 0) {
        only.push(sp[i]);
    }
}
console.log(only)

var sp = $('span');
var only = [];
for (var i = 0; i < sp.length; i++) {
  if ($(sp[i]).parent('a').length === 0) {
    $(sp[i]).css('background', '#ccc');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span>Item 1</span>

<span>Item 2</span>

<a href="#"><span>Item 3</span></a>

<span>Item 4</span>

<a href="#"><span>Item 5</span></a>

<span>Item 6</span>