Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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
Javascript 捕获'span'标记上的onClick事件_Javascript_Php_Jquery_Html_Css - Fatal编程技术网

Javascript 捕获'span'标记上的onClick事件

Javascript 捕获'span'标记上的onClick事件,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我的div元素中有很多span标记。每个div都有一个唯一的id。我想在每个div uniquley中的span元素中添加一个onclick事件。我该怎么做 <div class="bootstrap-tagsinput"id="1"> <span class="tag label label-info">Access control lists</span> <span class="tag label label-info">Ne

我的div元素中有很多span标记。每个div都有一个唯一的id。我想在每个div uniquley中的span元素中添加一个onclick事件。我该怎么做

  <div class="bootstrap-tagsinput"id="1">
  <span class="tag label label-info">Access control lists</span> 
  <span class="tag label label-info">Network firewall</span> 
  </div>


  <div class="bootstrap-tagsinput"id="2">
  <span class="tag label label-info">Access control lists</span> 
  <span class="tag label label-info">Network firewall</span> 
  </div>

访问控制列表
网络防火墙
访问控制列表
网络防火墙
我当前的脚本捕获所有span元素,与div无关

      $('span.label-info').click(function() {

         var news=$('input[type=text][id="vuln<?php echo $model->v_id;?>"]').val()+','+$(this).text();
         $('input[type=text][id="vuln<?php echo $model->v_id;?>"]').val(news);
        return false;
});
$('span.label info')。单击(函数(){
var news=$('input[type=text][id=“vuln”]').val()+,'+$(this.text();
$('input[type=text][id=“vuln”]').val(新闻);
返回false;
});

我怎样才能分别捕获每个div中的span元素呢?

我认为您看得不对。您可以保留共享的单击处理程序,而不是为每个div使用单独的单击处理程序,但可以找出哪个div是父级,并在后续选择器中使用其ID

$('span.label-info').click(function() {

    // find the parent/ansector that is a div and has the class
    var divId = $(this).closest('div.bootstrap-tagsinput').prop('id');

    var news=$('input[type=text][id="vuln' + divId + '"]').val()+','+$(this).text();
    $('input[type=text][id="vuln' + divId + '"]').val(news);
    return false;
});

您的代码应该能够为每个跨度添加一个点击平衡处理程序

$('span.label-info').click(function() {
    $(this).attr('id'); //<--$(this) is a handle to the clicked span
    $(this).parent().attr('id'); //<-- $(this).parent() references the parent div
});

在span click事件中,您可以找到父div,然后获取其属性id以查找它是哪个div。 下面是代码

$(document).ready(function(){


$(".tag").click(function(){


    alert($(this).parent().attr("id"));
});

}); 

$('1 span')。单击(..,$('2 span')。单击(..
等等。但是你为什么要这样做呢?问题是我在一个表中有这么多标记,我只想根据标记单击更新相应的标记。表中的每一行对应一个对象。因此id是对象的id。我使用for循环创建我的表行。因此,只需对所有跨度使用一个单击处理程序,即可获取它的父td元素
$('span.label info')。单击(function(){var cell=$(this)。最近的('td');…
),因为您是动态创建表的,所以它应该是
$('#mytable')。在('click','span.label info',function(){…
上。谢谢。但是我如何使用该span值来更新这两个div之间的div呢(哪个不是父div)?您可以为span divID提供自定义标记,您不需要更新该标记。请检查小提琴,我会相应地更改它
$(document).ready(function(){


$(".tag").click(function(){


    alert($(this).parent().attr("id"));
});

});