Javascript 捕获'span'标记上的onClick事件
我的div元素中有很多span标记。每个div都有一个唯一的id。我想在每个div uniquley中的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 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"));
});
});