Jquery 单击“如何获取具有相同id的Clock getAttribute(';数据名';”)
当我点击Jquery 单击“如何获取具有相同id的Clock getAttribute(';数据名';”),jquery,codeigniter,Jquery,Codeigniter,当我点击#标签列表项时,它应该会得到壁橱数据名 不管怎样,它对第一个都很好,但是如果我单击第二个#标记列表项,它会得到第一个数据名,而不是壁橱名 问题当我单击我的#标记列表项时,我如何确保它 具有相同id的正确的getAttribute('data-name') $(文档).on('单击','标记列表项'),函数(e){ var taglistitem=document.getElementById(“标记列表项”); var tagbar=document.getElementById(“标
#标签列表项
时,它应该会得到壁橱数据名
不管怎样,它对第一个都很好,但是如果我单击第二个#标记列表项
,它会得到第一个数据名,而不是壁橱名
问题当我单击我的#标记列表项
时,我如何确保它
具有相同id的正确的getAttribute('data-name')
$(文档).on('单击','标记列表项'),函数(e){
var taglistitem=document.getElementById(“标记列表项”);
var tagbar=document.getElementById(“标记菜单”);
var tagmenuitem=document.createElement(“li”);
tagmenuitem.id=“标记菜单项”;
tagbar.appendChild(tagmenuitem);
var label=document.createElement(“span”);
label.className=“label-label-default”;
label.innerHTML=taglistitem.getAttribute('data-name');
tagmenuitem.appendChild(标签);
});
全景
<div id="tag">
<?php if ($tags) {?>
<div id="tag-list-group">
<?php foreach (array_chunk($tags, 4) as $tag) { ?>
<div class="row">
<?php foreach ($tag as $tag) {?>
<div class="col-sm-3 col-xs-6 text-center">
<a>
<span id="tag-list-item" data-id="<?php echo $tag['tag_id'];?>" data-name="<?php echo $tag['name'];?>"><?php echo $tag['tag_name'];?></span>
</a>
</div>
<?php }?>
</div>
<?php }?>
</div>
<?php }?>
<div id="tagbar"><ul id="tag-menu" class="list-inline"></ul></div>
</div>
<script type="text/javascript">
$(document).on('click', '#tag-list-item', function(e){
var taglistitem = document.getElementById("tag-list-item");
var tagbar = document.getElementById("tag-menu");
var tagmenuitem = document.createElement("li");
tagmenuitem.id = "tag-menu-item";
tagbar.appendChild(tagmenuitem);
var label = document.createElement("span");
label.className = "label label-default";
label.innerHTML = taglistitem.getAttribute('data-name');
tagmenuitem.appendChild(label);
});
</script>
$(文档).on('单击','标记列表项'),函数(e){
var taglistitem=document.getElementById(“标记列表项”);
var tagbar=document.getElementById(“标记菜单”);
var tagmenuitem=document.createElement(“li”);
tagmenuitem.id=“标记菜单项”;
tagbar.appendChild(tagmenuitem);
var label=document.createElement(“span”);
label.className=“label-label-default”;
label.innerHTML=taglistitem.getAttribute('data-name');
tagmenuitem.appendChild(标签);
});
问题在于,当同一个id必须是唯一的时,您重复了多次。您需要使用通用的类
然后,您需要修改单击处理程序中的代码,以引用具体引发事件的元素,而不是尝试通过其id
来选择它。您还有一个奇怪的jQuery和简单JS代码的混合,可以简化。试试这个:
<!-- note the 'class' is added -->
<span class="tag-list-item" data-id="<?php echo $tag['tag_id'];?>" data-name="<?php echo $tag['name'];?>"><?php echo $tag['tag_name'];?></span>
$(文档)。在('单击','上。标记列表项',函数(e){
变量$taglistitem=$(此项);
var$tagbar=$(“#标记菜单”);
var$tagmenuitem=$(').appendTo($tagbar);
$(“”+$taglistitem.data('name')++'问题是,当同一id
必须是唯一的时,您重复了多次。您需要改用公共类
然后,您需要修改单击处理程序中的代码,以引用引发事件的元素,而不是试图通过其id
来选择它。您还可以简化jQuery和普通JS代码的混合。请尝试以下方法:
<!-- note the 'class' is added -->
<span class="tag-list-item" data-id="<?php echo $tag['tag_id'];?>" data-name="<?php echo $tag['name'];?>"><?php echo $tag['tag_name'];?></span>
$(文档)。在('单击','上。标记列表项',函数(e){
变量$taglistitem=$(此项);
var$tagbar=$(“#标记菜单”);
var$tagmenuitem=$(').appendTo($tagbar);
$(“”+$taglistitem.data('name')++'如果有多个项,我不建议您使用id
而是使用class
但在所有情况下,您都可以使用此
而不是选择ID
$(文档)。在('单击','上。标记列表项',函数(e){
$('#result').html(this.getAttribute('data-name'));
});
点击我
点击我
点击我
如果您有多个项目,我不建议您使用id
,而是使用class
但在所有情况下,您都可以使用此
而不是选择ID
$(文档)。在('单击','上。标记列表项',函数(e){
$('#result').html(this.getAttribute('data-name'));
});
点击我
点击我
点击我
问题在于,当同一个id
必须是唯一的时,您重复了多次。将id
更改为class
,这样做会很好。如果您正在循环,并且有多个id标记列表项的元素
,您应该使用class并使用此上下文来获取单击的项document.getElementById(“标记列表项”);
每次都会获取具有该id的第一个项。如果使用jquery,则使用jquery,不要与js混合使用,即使用var taglistitem=$(this)
(或者,如果确实需要dom节点:var taglistitem=$(this)。获取(0)
)问题是,当同一个id
必须是唯一的时,您重复了多次。将id
更改为class
,它会很好地工作。如果您正在循环并拥有多个id为标记列表项的元素
,您应该使用class并使用此上下文来获取单击的项文档。getElementById(“标记列表项”);
每次都获取第一个id为的项。如果使用jquery,则使用jquery,不要与js混合使用,即使用var taglistitem=$(此)
(或者,如果确实需要dom节点:var taglistitem=$(此)。获取(0)
)