Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 单击“如何获取具有相同id的Clock getAttribute(';数据名';”)_Jquery_Codeigniter - Fatal编程技术网

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)