Jquery--end()使用的问题

cfd406635982 2012-09-14 11:12:20

<!DOCTYPE html>
<html>
<head>
<style>
.test{color:red;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<div id="first"></div>
<div></div>
<div></div>
<div></div>

<script>
$("<p>Hello world!</P>").appendTo("div").end().addClass("test");
</script>

</body>
</html>

这儿为什么是第一个DIV的字体是红色的?
明白的能给我详细的分析一下不? 谢谢了哈。
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfd406635982 2012-09-17
  • 打赏
  • 举报
回复
谢谢大家了。
我原来没有理解的是问题是这样的:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>H</title>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
</head>
<body>

<div></div>
<div></div>
<div></div>

<script type="text/javascript">
$(function(){
var p = $("<P>my-jquery</P>");
p.appendTo($("div"));
p.html("Hello world");
});
</script>
</body>
</html>

执行以后这三个div的内容是:
Hello world
my-jquery
my-jquery

应该是在appendTo方法执行的时候,只有第一个div里面存放的是p对象,
后面的div里面都是p的副本,所以只有第一个改变了。结贴了。。
cfd406635982 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
$("<p>Hello world!</P>")//这是jquery申明元素的另一种方法
.appendTo("div")//附加到div尾
.end()//回到上一次操作之前,也就是将操作对像又指回了<p>Hello world!</P>
.addClass("test");//给它添加一个test样式

效果就是,给所有的div内加上<p>Hello world!</P>
并在第一……
[/Quote]
.end()//回到上一次操作之前,也就是将操作对像又指回了<p>Hello world!</P>
那这儿为什么是知道的是第一个<p>Hello world!</P>,为什么上次操作的是第一个呢?
而不是所有的p标签呢? 我就是这个地方想不通。。
泡泡鱼_ 2012-09-14
  • 打赏
  • 举报
回复
$("<p>Hello world!</P>")//这是jquery申明元素的另一种方法
.appendTo("div")//附加到div尾
.end()//回到上一次操作之前,也就是将操作对像又指回了<p>Hello world!</P>
.addClass("test");//给它添加一个test样式

效果就是,给所有的div内加上<p>Hello world!</P>
并在第一个<p>Hello world!</P>附加样式:<p class='test'>Hello world!</P>

泡泡鱼_ 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:
$("<p>Hello world!</P>")//这是jquery申明元素的另一种方法
.appendTo("div")//附加到div尾
.end()//回到上一次操作之前,也就是将操作对像又指回了<p>Hello world!</P>
.addClass("test");//给它添加一个test样式

效果就是,给所有的div内加上<p>Hello wor……
[/Quote]
.appendTo("div")时就已经给所有的div增加了之前定义的元素对象
.end()返回上一次的选择对象,记住,是对象本身,也就是$("<p>Hello world!</P>")
.addClass("test");//给它添加一个test样式

你说的那种效果应该这样子:

$("<p>Hello world!</P>").addClass("test").appendTo("div");

因为是先给元素对象$("<p>Hello world!</P>")附加了样式,再将其追加到div内,所以,每个div里的p都会有这个标签

呃,我可能说得不太清楚。拿你的这个举个例子吧,为了让你看得更明白,我变更了你的DOM结构
  <div id="first">
<div></div>
<div></div>
<div></div>
</div>

<script>
$("<p>Hello world!</P>").appendTo($("#first div")).end().addClass("test");
alert($('#first').html);//这是你之前的例子,你可以看看打印出来的是什么
$("#first div p").remove();//然后我们移除这前追加进来的p元素

var _p=$("<p>Hello world!</P>");//然后我们用另一种方法来达到效果
_p.appendTo($("#first div"));//一样的,追加进div内
_p.addClass("test");//给_p附加样式
alert($('#first').html);//再打印,跟之前的是一样的
</script>
chen_zujun 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:
$("<p>Hello world!</P>")//这是jquery申明元素的另一种方法
.appendTo("div")//附加到div尾
.end()//回到上一次操作之前,也就是将操作对像又指回了<p>Hello world!</P>
.addClass("test");//给它添加一个test样式

效果就是,给所有的div内加上<p>Hello w……
[/Quote]
实践测试一下你的想法
wwperfect 2012-09-14
  • 打赏
  • 举报
回复
$("<p>Hello world!</P>").appendTo("div")改变jQuery元素的操作,
.end() 匹配之前第一次的操作。即第一个div节点。
wwperfect 2012-09-14
  • 打赏
  • 举报
回复
$("<p>Hello world!</P>").appendTo("div")多次改变jquery元素的操作。
.end()操作 匹配之前改变操作的第一次操作的动作,即第一个DIV节点
jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签 1.3.6更新 Bug treegrid: getChecked方法不能返回正确的行. fixed. tree: 异步树,在onlyLeafCheck:true时复选框不显示正确. fixed. Improvement treegrid:继承datagrid组件所有的selecting和checking方法。 linkbutton:图标对齐方式,支持值:'top','bottom','left','right'。 linkbutton:添加"size"属性,支持值:'small','large'。 linkbutton:添加的onClick事件。 menubutton:添加"menuAlign"属性,允许用户设置顶级菜单对齐。 combo:添加"panelAlign"属性,支持值:'left','right'。 calendar:"formatter"、"styler"和"validator"选项可用于自定义日历日期。 calendar:添加的onChange事件。 panel:添加"method","queryParams"和"loader"属性。 panel:添加"onLoadError"事件。 datagrid:添加"onBeginEdit"事件。 datagrid:添加"onEndEdit"事件。 datagrid:添加"sort"方法和"onBeforeSortColumn"事件。 datagrid:"combogrid"编辑器集成到datagrid。 datagrid:添加"ctrlSelect"属性,允许使用ctrl+click 多选 slider:添加"converter"选项,允许用户决定如何将一个值转换为滑块的位置或滑块位置值。 searchbox:添加"disabled"属性。 searchbox:添加"disabled","enable","clear","reset"方法。 spinner:添加"readonly"属性、"readonly"方法和"onChange事件。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧