add()方法,$('li').add('<p>新的p元素</p>').appendTo($('.right'))怎么理解?
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style>
.left {
width: auto;
height: 150px;
}
.left div {
width: 150px;
height: 120px;
padding: 5px;
margin: 5px;
float: left;
background: #bbffaa;
border: 1px solid #ccc;
}
.right{
width: 150px;
height: 120px;
padding: 5px;
margin: 5px;
background: chocolate;
border: 1px solid azure;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>add方法()</h2>
<div class="left first-div">
<div class="div">
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
</ul>
<p>新的p元素</p>
</div>
</div>
<div class="right"></div>
<br/>
<button>点击:add传递元素标签</button>
<button>点击:add传递html结构</button>
<script type="text/javascript">
$("button:first").click(function() {
//把p元素添加到li的合集中
$('li').add('p').css('background', 'red')
})
</script>
<script type="text/javascript">
$("button:last").click(function() {
//把html结构'<p>新的p元素</p>'
//加入到li的合集中,为了能够在页面上显示
//需要再重新appendTo到指定的节点处
//值得注意:整个结构位置都改变了
$('li').add('<p>新的p元素</p>').appendTo($('.right'))
})
</script>
</body>
</html>案例中,第一个$('li').add('p')是把<p>新的p元素</p>添加到li的集合中也就是如图1代码如下:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <p>新的p元素</p> </ul>
但实际上<p>标签还是在<div class="left first-div">中,只是被添加到匹配的元素集合中也就是<ul>标签里
$('li').add('<p>新的p元素</p>').appendTo($('.right'))点击第二个<button>得到结果,如图2:

(问题1)<p>标签还是在原来的<div class="left first-div">标签里,那么<div class="right">标签里的<p>标签为啥没有背景色?
(问题2)单击第一个<button>得到结果,如图3

<div class="right">标签里的<p>标签背景色为红色,为什么?