3

无法理解为什么此代码将 DIV 元素的颜色更改为蓝色,但不更改 SPAN 元素的颜色。有任何想法吗?

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script>
    $(document).ready(function(){
      $("#prev ~ div").css("color", "blue");
      $("#prev ~ span").css("color", "red");
    });
  </script>
</head>
<body>
  <span id="prev">span#prev</span>
  <div>div sibling</div>
  <span>span sibling</span>
</body>
</html>

注意到如果我更换

<span id="prev">span#prev</span>

<p id="prev">span#prev</p>

DIV 和 SPAN 都会更改文本颜色。

谢谢!

4

3 回答 3

6

看起来你发现了一个错误。

$("#prev ~ span:not(#prev)") 有效,$("#prev").siblings("span") 也有效。

于 2009-04-27T14:26:00.347 回答
4

这确实似乎是一个错误。向 jQuery 报告错误

http://dev.jquery.com/report

似乎有相当数量的兄弟选择器错误

于 2009-04-27T14:21:17.173 回答
2

似乎是 JQuery 的错误。您应该将此错误提交给团队并让他们修复它。

于 2009-04-27T14:18:15.497 回答