使用jQuery获取相同类名的元素集合

如果看不到图片,我把代码写上。
<head>
<script type="text/javascript" src="../jquery-1.4.4.min.js"></script>
<style type="text/css">
.spanTag { display:inline-block; margin-left:10px;}
</style>
<title>无标题文档</title>
</head>

<body>
<div id="addTagDiv"></div>
<input type="text" id="textAdd" value="" /><input type="button" id="btnAdd" value="add" />
<script type="text/javascript">
var a=0;
$(document).ready(function(){
$("#btnAdd").click(function(){
a=$("#addTagDiv").html();
$("#addTagDiv").html(a+"<span class='spanTag'>"+$("#textAdd").val()+"</span>");
});
});
</script>
</body>
我是一个前端代码新手,这段代码的效果其实类似于腾讯网的手动添加标签。我现在已经用jQuery写出了添加功能,但删除标签的功能没有写出来。最大的问题是不知怎么获取鼠标当前移动到哪个标签上。例如:我已经通过text添加了4标签,鼠标现在悬停在第三个span标签上,如果我用$(".spanTag")话,则获取到的是span集合,而不是单独一个标签。我想请问高手们,我怎么(使用jQuery)能获取相应标签?

$("#btnAdd").click(function(){
    $("<span/>").appendTo("#addTagDiv").html($("#textAdd").val()).addClass("spanTag").click(function(){
    //这里面的this就是当前这个span的dom元素
    //$(this)就是当前span的jquery对象,你可以对他们进行任何操作
    //比如现在我就移除当前这个span
    $(this).remove();
})
});
//最后整个代码的意思就是一个ID为btnAdd的元素单击时则追加一个span元素到ID为addTagDiv的元素内,该span的html为一个ID叫textAdd元素的value属性值。然后单击任何一个新增的span元素将会把这个span移除掉
//代码没有测试,如有问题请继续追问

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-28
<body>

<div id="addTagDiv"></div>

<input type="text" id="textAdd" value="" /><input type="button" id="btnAdd" value="add" />

<script type="text/javascript">
var a;
var i=0;
$(document).ready(function(){

 $("#btnAdd").click(function(){
i= i+1;
  a=$("#addTagDiv").html();
 
  $("#addTagDiv").html(a+"<span class='spanTag"+i+"' onmouseover='ov("+i+")'>"+$("#textAdd").val()+"</span>");
 });

});

function ov(key){
 var s=$(".spanTag"+key);
 alert(s.text());
}
</script>

</body>

第2个回答  2013-05-28
提供一个思路,,在你添加完成后,为其中的每个span标签绑定事件,

$("#addTagDiv").html(a+"<span class='spanTag'>"+$("#textAdd").val()+"</span>");
//添加完成后重新绑定事件,我写的是click,悬停貌似是mouseover
$(".spanTag").click(function(){
alert($(this).text());//$(this)就是你当前的span了
});

如果有更好的思路,欢迎补充
第3个回答  推荐于2016-12-04
$(document).ready(function(){
$("#btnAdd").click(function(){
var a=$("#addTagDiv").html();
$("#addTagDiv").html(a+"<span class='spanTag'>"+$("#textAdd").val()+"</span>");
bindListener();
});
});

function bindListener(){
$(".spanTag").unbind().click(function(){
$(this).remove();
})
}本回答被提问者采纳

如果一个页面中有多个相同id,如何用JQuery选中所有对应元素_百度...
首先id是不允许有相同的,如果是有共同属性的某类元素的话,用class。如果有几个是相同的话,取到的值是页面由上到下第一个的值,取值是没有什么不同的,跟普通的根据id取值是一样的。如果对于多个元素或者多条数据的话,要用ID的话,可以动态生成id,前面可以加前缀等的,比如用“row_id”+i来...

jquery怎么获取页面上有多少个相同class
可以选择所有相同class的元素,然后使用其length属性:var $elements = $('.className');var len = $elements.length;alert('有 ' + len + ' 个相同class');elements.each(function() { var $this = $(this);alert($this.prop('tagName'));});...

jquery如果获取id相同的元素集合中的第N个
比如id=“aa",获取第三个,则可以这样$('#aa').eq(2)或者$('#aa:eq(2)')希望可以帮到你

我有3个DIV,Class相同,怎么用Jquery获取到第三个DIV?
1、首先,打开html编辑器,新建html文件,例如:index.html,并引入jquery,编写问题基础代码。2、在index.html中的标签,输入jquery代码:$('body').append($('.abc').eq(2).text());。3、浏览器运行index.html页面,此时成功用jquery取得了相同class的div的第3个元素并打印了其内容。

jquery怎么获取相同class的个数?
1、新建html文档,在body标签中添加一些div标签,并为这些div标签设置一些类,然后引入jquery文件:2、使用jquery获取所有相同类名的标签,格式为$('.class名'),这时所有相同类名的标签会被选中:3、获取标签之后,使用length属性获取标签的个数,这时相同类名的个数就被获取到了:...

jquery中怎么找id相同的控件中其中一个
这个根据id找可以找到n个,然后,如果你要是知道你要的那个元素是第几个可以$("#id").eq(n),如果不知道比如这个元素有个属性值是其他元素没有的,或者那个属性值的一部分是其他元素没有的可以,比如name$("#id[name*= value])这个就是选取id为id的并且name中包含value的元素 ...

jquery怎样获取一个元素下面相同子元素的个数?
1、siblings(),可以返回元素的所有同胞元素。2、next(),可以获取到当前元素的下一个同胞元素。3、nextAll(),可以获取到当前元素的所有跟随的同胞元素。4、nextUntil(),可以获取到介于两个元素之间的所有跟随的同胞元素。5、prev(),可以获取到当前元素的前一个同胞元素。6、prevAll(),可以获取到...

怎么用jquery 获取同级div 上一个div的id 跟下一个div的id
--说明:如果给定一个表示 DOM 元素集合的 jQuery 对象,.prev() 方法允许我们在 DOM 树中搜索这些元素的前一个同胞元素,并用匹配元素构造一个新的 jQuery 对象。.next()定义和用法 next() 获得匹配元素集合中每个元素紧邻的同胞元素。如果提供选择器,则取回匹配该选择器的下一个同胞元素。.next(...

jquery怎样在获取同一个div下的类的ID
思路:利用jQuery选择器直接根据类名获取对象→遍历对象→使用 attr() 方法获取id属性值。下面实例演示——获取所有class为test的元素的id值:1、HTML结构 我的类是test,id是div_id我的类是test,没有id属性我的类是test,id是li_id2、jQuery代码 (function(){$("input[type='button']").click...

jquery 如何选取相同class里特定的一个?
浏览器。1、首先,打开html编辑器,新建html文件,例如:index.html,填充问题基础代码。2、在index.html中的标签,将“$(".post_status")”修改为“$(this).find(".post_status")”。3、浏览器运行index.html页面,此时对任意个div进行hover都只会是当前hover的元素会调用样式改变代码。

相似回答