`
jerryqiu007
  • 浏览: 232309 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery中的append方法误区!

阅读更多

先上测试代码,我想做这样一个效果,鼠标移入自动在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.测试成功!

分享到:
评论
12 楼 amwjx 2011-03-26  
wang663727 写道
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"); 并没有任何效果



楼上正解

jQuery('div').remove(‘.s’);
相当于:
jQuery('div').filter('.s').remove()

下面的起作用,和jQuery(this).remove(".s");没有一点关系
jQuery(this).append(jQuery(".s"));
相当于:
jQuery(".s").remove().appendTo($(this));
11 楼 qjtttt 2011-03-18  
jerryqiu007 写道
wjyuian 写道
可能我误解了楼主想要表达的重点了,,

那为什么用我后面的方法删除就可以了呢?
.将jQuery(this).append("<span class='s'>删除</span>");改成jQuery(this).append(jQuery(".s"));



$(this).append("<span class='s'>删除</span>");
$(this).append($(".s"));
自己下断点看看 $(".s") 是什么
$(".s") 意思是说的 document.getElementsByClassName("s");
JS执行顺序的问题,先执行的$(".s") 然后传递给$(this).append
这时候是告诉程序,我要往这个div里面加入页面上所有clsss为s的元素作为子元素
10 楼 int08h 2011-03-18  
remove函数里的selector是指“在当前jQuery选择出来的元素之中符合该选择器的元素将被移除”
你的$(this)是一个div,.remove('.s')是在[div]这个数组里找到符合.s这个选择器的,当然一个都找不到,所以没有移除……
问题的根本出在remove,你却去修改append……
9 楼 wang663727 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"); 并没有任何效果
8 楼 yiyi_2 2011-03-11  
等待楼下解惑!!!
7 楼 jerryqiu007 2011-03-02  
wjyuian 写道
可能我误解了楼主想要表达的重点了,,

那为什么用我后面的方法删除就可以了呢?
.将jQuery(this).append("<span class='s'>删除</span>");改成jQuery(this).append(jQuery(".s"));
6 楼 wjyuian 2011-03-02  
可能我误解了楼主想要表达的重点了,,
5 楼 wjyuian 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被删掉)

所以沙发的那种做法可以达到楼主想要的效果


4 楼 wjyuian 2011-03-02  
zuiyanwangyue 写道
interjc 写道
不是这个问题,是你mouseout的时候写的语法有问题

jQuery(this).remove(".s"); 

这个时候意思是去除字符串 .s ,应该是

jQuery(this).find(".s").remove(); 



正解


jQuery(this).remove(".s"); 这句话没问题,,remove的参数也可以是字符串,代表选择器。。
3 楼 zuiyanwangyue 2011-03-02  
interjc 写道
不是这个问题,是你mouseout的时候写的语法有问题

jQuery(this).remove(".s"); 

这个时候意思是去除字符串 .s ,应该是

jQuery(this).find(".s").remove(); 



正解
2 楼 elvishehai 2011-03-02  
呵呵, 都是高手 ,我对这个不是很了解了,
1 楼 interjc 2011-02-26  
不是这个问题,是你mouseout的时候写的语法有问题

jQuery(this).remove(".s"); 

这个时候意思是去除字符串 .s ,应该是

jQuery(this).find(".s").remove(); 

相关推荐

    jQuery中append()方法用法实例

    jQuery中的append()方法是用于在jQuery对象所匹配到的每一个元素内部的末尾添加内容。这个方法并不会移除任何已存在的内容,而是将新的内容追加到选定元素的内容末尾。这一点是非常重要的,尤其是在动态添加内容到...

    关于jquery append() html时的小问题的解决方法

    append()函数在jQuery中被广泛用于向选定的元素内部追加内容,这是一个非常方便的操作,可以帮助开发者以非常简单的方式动态生成网页内容。然而,在特定的情况下,append()函数可能会出现一些意外的行为。 首先,...

    解决jQuery使用append添加的元素事件无效的问题

    在jQuery中,`append`方法是用来向DOM树中动态添加元素的,这在构建动态页面时非常常见。然而,一个常见的问题是在使用`append`添加的元素上绑定的事件经常无法正常工作,即所谓的“事件无效”。这是因为这些新添加...

    jquery append与appendTo方法比较

    jquery中append与appendTo方法区别 1. append(content)方法 方法作用:向每个匹配的元素内部追加内容。 参数介绍:content (): 要追加到目标中的内容。 用法示例: HTML代码为&lt;p&gt;I come from &lt;/p&gt;&lt;p&gt;I love  向...

    jquery append()方法与html()方法的区别及使用介绍

    在 jQuery 中,append() 方法和 html() 方法都是经常被使用到的,它们用于对 DOM 元素进行内容操作,但这两个方法各自有着不同的用处和行为。 首先,让我们来看看 append() 方法。append() 方法属于 jQuery 的 DOM ...

    jquery中append()与appendto()用法分析

    在jQuery库中,`append()`和`appendTo()`都是用于向HTML元素添加内容的方法,但它们的使用方式有所不同。这两个方法在很多情况下可以互换,但理解它们的区别可以帮助你更有效地编写JavaScript代码。 1. `append()`...

    jQuery中append、insertBefore、after与insertAfter方法注意事项

    在使用jQuery进行DOM操作时,append、prepend、before和after方法是经常使用的,它们可以帮助开发者以不同的方式动态地修改页面内容。同时,appendTo、prependTo、insertBefore和insertAfter则是对应的以元素为目标...

    jquery使用append(content)方法注意事项分享

    在jQuery中,我们可以使用选择器选中一个或多个元素,然后使用append方法向这些元素中追加内容。举一个简单的例子,如果我们有一个段落元素,我们可以使用append方法向其中追加一些文本内容: ```javascript $("p")...

    jQuery1.12.4+jQuery中文手册.rar

    在本压缩包中,我们有两个版本的jQuery核心库文件:`jquery-1.12.4.js` 和 `jquery-1.12.4.min.js`。前者是未压缩的源代码,适合开发调试使用,后者是经过压缩和优化的版本,适用于生产环境,体积更小,加载速度更快...

    jquery append

    这里面主要是讲关于jquery append 函数的使用,方便用户使用函数

    jQuery使用append在html元素后同时添加多项内容的方法

    在jQuery库中,`append()`方法是一个非常常用的操作,它允许开发者向HTML元素内部或末尾添加新的内容。本文将详细解析如何使用`append()`在HTML元素后同时添加多项内容,以及不同方式创建和添加这些内容。 首先,`...

    jquery 实现级联效果!

    5. **动态填充选项**:一旦获取到新的数据,可以使用jQuery的`append()`方法将它们添加到下拉列表中。例如: ```javascript $.each(subCategories, function(index, subCategory) { $("#subCategory").append(`${...

    jQuery添加新内容的四个常用方法分析【append,prepend,after,before】

    在jQuery库中,有四种主要的方法用于向HTML文档动态添加新内容:`append()`、`prepend()`、`after()`和`before()`。这些方法都提供了非常直观和方便的方式来操纵DOM(文档对象模型),使得开发者能够轻松地在元素...

    重新认识Jquery中的html()方法

    本文将深入探讨jQuery中的`html()`方法,帮助开发者更全面地理解这个功能强大的工具。 `html()`方法是jQuery中用于处理元素内容的核心方法之一。它允许我们获取或设置HTML元素的内部HTML内容,包括所有子元素。这个...

    jQuery中文文档1.8和1.4的chm文档

    在jQuery 1.8版本中,引入了一些关键更新和改进,如: 1. **$.ajax()** 方法的增强:增加了`traditional`选项,用于控制数据序列化的方式,使传统数组或对象格式的处理更为灵活。 2. **$.Callbacks()** 的新功能:...

    jquery中文参考

    在“jQuery中文参考”中,我们可以找到关于jQuery的所有核心功能和方法的详细解释,这对于初学者和经验丰富的开发者来说都是一个宝贵的资源。ajax中国整理的这个中文参考,旨在帮助中文用户更好地理解和应用jQuery。...

    jquery 中文帮助文档

    jQuery提供了丰富的DOM操作方法,如`$(selector).html()`用于设置或获取元素的HTML内容,`$(selector).append()`用于在元素内部添加内容,`$(selector).remove()`用于移除元素,以及`$(selector).clone()`用于复制...

Global site tag (gtag.js) - Google Analytics