锁定老帖子 主题:jQuery中的append方法误区!
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-24
先上测试代码,我想做这样一个效果,鼠标移入自动在div上添加删除字样,鼠标移出后消失
<div id="1">Item1</div> <div id="2">Item2</div> <div id="3">Item3</div> <script type="text/javascript"> jQuery(function() { var ele = jQuery("div"); ele.hover(function(){ jQuery(this).append("<span class='s'>删除</span>"); },function(){ jQuery(this).remove(".s"); }); }); </script>
这样的写法并不能达到效果,主要是jQuery(this).remove(".s");执行后没有效果,查看了光放的API,这样写到: append(content) 这个操作与对指定的元素执行appendChild方法,将它们添加到文档中的情况类似。 参数content String, Element, jQuery
并没有太大收获,想了想可能是没有将新的代码加入dom中,于是把append中的参数由String换成jQuery对象,操作如下: 1.在HTML中添加<span class='s'>删除</span> 2.将jQuery(this).append("<span class='s'>删除</span>");改成jQuery(this).append(jQuery(".s")); 3.测试成功! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-02-26
不是这个问题,是你mouseout的时候写的语法有问题
jQuery(this).remove(".s"); 这个时候意思是去除字符串 .s ,应该是 jQuery(this).find(".s").remove(); |
|
返回顶楼 | |
发表时间:2011-03-02
呵呵, 都是高手 ,我对这个不是很了解了,
|
|
返回顶楼 | |
发表时间:2011-03-02
interjc 写道 不是这个问题,是你mouseout的时候写的语法有问题
jQuery(this).remove(".s"); 这个时候意思是去除字符串 .s ,应该是 jQuery(this).find(".s").remove(); 正解 |
|
返回顶楼 | |
发表时间:2011-03-02
zuiyanwangyue 写道 interjc 写道 不是这个问题,是你mouseout的时候写的语法有问题
jQuery(this).remove(".s"); 这个时候意思是去除字符串 .s ,应该是 jQuery(this).find(".s").remove(); 正解 jQuery(this).remove(".s"); 这句话没问题,,remove的参数也可以是字符串,代表选择器。。 |
|
返回顶楼 | |
发表时间:2011-03-02
不过楼主没理解
jQuery('div').remove(s);这句话的意思,以及remove参数是字符串时候的意思 jQuery('div').remove()注定被删除的一定是个div,,remove的参数是帮助删选的 所以jQuery('div').remove(‘.s’);表示删除class为s的div对象 而楼主jQuery(this).remove(".s"); 是删除class为s的div,所以没有删除(因为this就是div,,如果给3个div加上class='s',则会连同div被删掉) 所以沙发的那种做法可以达到楼主想要的效果 |
|
返回顶楼 | |
发表时间:2011-03-02
可能我误解了楼主想要表达的重点了,,
|
|
返回顶楼 | |
发表时间:2011-03-02
wjyuian 写道 可能我误解了楼主想要表达的重点了,,
那为什么用我后面的方法删除就可以了呢? .将jQuery(this).append("<span class='s'>删除</span>");改成jQuery(this).append(jQuery(".s")); |
|
返回顶楼 | |
发表时间:2011-03-11
等待楼下解惑!!!
|
|
返回顶楼 | |
发表时间:2011-03-18
最后修改:2011-03-18
jerryqiu007 写道 wjyuian 写道 可能我误解了楼主想要表达的重点了,,
那为什么用我后面的方法删除就可以了呢? .将jQuery(this).append("<span class='s'>删除</span>");改成jQuery(this).append(jQuery(".s")); 因为只有jQuery(this).append(jQuery(".s")); 起作用了 jquery的append参数如果是一个jq对象就会删除原始对象,追加到新位置,你改了之后的代码jQuery(this).remove(".s"); 并没有任何效果 |
|
返回顶楼 | |