jquery .add()很奇怪

Phi*_*007 0 jquery

为什么所有元素都变红了?我只打算变成<p>红色.

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
</ul>
<p>a paragraph</p>

<script>
$('li').add('p').css('background-color', 'red');
</script>
Run Code Online (Sandbox Code Playgroud)

Soe*_*Moe 5

$('li')是选择所有li
$('li').add('p')正在添加 p标签选定的所有li
$('li').add('p').css('background-color', 'red')正在改变all the li and pbackgroundColor为红色.

来自jQuery.add API

给定一个表示一组DOM元素的jQuery对象,.add()方法从这些元素的并集和传递给方法的元素构造一个新的jQuery对象..add()的参数几乎可以是$()接受的任何内容,包括jQuery选择器表达式,对DOM元素的引用或HTML片段.