2013-11-14 55 views
1

我很努力地使用jquery来识别我点击的按钮。从列表中获取点击输入的正确名称JQUERY

我有一个动态生成的列表类别以及删除按钮从数据库中删除它。

我的输入是这样的:

<input id="deletesector" class="deletesector" type="submit" name="deletesector-4" value="Remove"></input> 
<input id="deletesector" class="deletesector" type="submit" name="deletesector-5" value="Remove"></input> 
<input id="deletesector" class="deletesector" type="submit" name="deletesector-6" value="Remove"></input> 

我的剧本侦听.deletesector点击然后拿到ATTR名。但是,无论点击3个按钮中的哪一个,它都会返回deletesector-4的名称。

我该如何解决这个问题,以便如果单击“deletesector-5”,它会将其标识为这样。

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

    //store the id 
    var name = $("input#deletesector").attr('name'); 

    //create the post variable string 
    var dataString = 'serviceid='+ name; 
    alert (dataString); 
+1

[一个'id' ***在文档***中必须是唯一的](http://www.w3.org/TR/html401/struct/global.html#h-7.5.2),否则HTML无效。这使得JavaScript打破了,小狗哭了。 –

+0

'name'是一个PROPERTY还是一个ATTRIBUTE? –

+0

@MilchePatern我想这取决于他使用的是什么版本的jQuery .... – Rooster

回答

1

用途:

$(".deletesector").click(function(){ 
    var name = $(this).attr('name'); 
    // your stuff here 
}); 

this在一个jQuery事件是指被点击的元素。

此外,你的重复id s会搞砸了。

查看此JSFiddle作为一个工作示例。

3

使用this的点击处理程序的匿名函数内部:

$(".deletesector").click(function(){ 
    var name = this.name 
}); 

你总是拿到的deleteselector4name的原因是因为这是第一次(但不是唯一的)与deleteselectorid元素,为使HTML有效,一个id必须是唯一的。考虑到这一点id选择永远只能找一个元素,当他们通过id搜索,并停止在该第一元,假定它与id的唯一元素(因为它应该是)。

鉴于HTML中的idclass相同,请删除id,因为它没有任何用处,并且会主动损害HTML的有效性。

参考文献:

0

首先,你有一些重复的ID。 这里是固定的代码:

<input id="deletesector-4" class="deletesector" type="submit" name="deletesector-4" value="Remove"></input> 
<input id="deletesector-5" class="deletesector" type="submit" name="deletesector-5" value="Remove"></input> 
<input id="deletesector-6" class="deletesector" type="submit" name="deletesector-6" value="Remove"></input> 

然后你jQuery的可能是这样的:

$(".deletesector").click(function(ev) { 
    // CHECK THIS $(ev.target) element, very useful! 
    elementClicked = $(ev.target); 
    var name = elementClicked.attr('name'); 
    var dataString = 'serviceid='+ name; 
    alert (dataString); 
}); 

Here is a JSFiddle,显示你的榜样工作。