绑定处理程序到多个具有相似ID的元素

问题描述:

我有很多元素,它们的id属性类似于element_num,其中num是元素的数量。我希望它能够在我点击其中一个元素时被删除。绑定处理程序到多个具有相似ID的元素

第一个问题是如何使用选择器来查找这些元素(我想我需要像这样的正则表达式)。

第二个问题是如何获取点击的元素ID来删除它。

在jQuery中,你可以通过

$("#id") for id 
$(".class") for class 
$("elem") for an element type, like <div> 

选择元素说你有30周的div(带班.removable)页面上,你想删除被点击了一个,你会怎么做是这样的:

$(".removable").click(function() 
{ 
    alert("removing: "+$(this).attr("id")); 
    $(this).remove(); 
}); 
+0

我认为是我需要的,谢谢 – Maki 2011-05-21 14:13:08

您可以绑定到所有的人,并删除它们喜欢:

$("[id*='element_num']").click(function() { 
    // this.id is the id if you need it. 
    $(this).remove(); 
}); 

*=选择获取与含有该段的ID的任何元素。理想情况下,您会将所有这些可删除项目包装在一个容器中,以便您可以使用DOM选择。

*=.remove

你可以增加一些类到这些因素,所以你可以选择所有这些,并结合对click事件的删除操作,只使用一个类选择像 $(.removable) $(”。可移动“)

此外,如果您使用此类的类,您可以使用该元素的id为真正的id号,然后你只需获取元素id以获得真实的数字id与此

$(this).attr('id') this.id

+2

-1的矛盾'$(本).attr( “ID”)'请使用'this.id' – Raynos 2011-05-21 14:10:49

+1

@Raynos:什么?你的意思是你并不总是将对象传递给函数,该函数返回包含在一组实用程序中的对象,这些实用程序允许您通过调用方法并传递字符串来提取属性? ; o) – user113716 2011-05-21 14:14:15

+1

@patrick_dw您需要为它们包装更多'Enterprise($(this))。getMethods()。executeMethod(EnterPrise($(this))。getMethodNames()。get(“id”))' – Raynos 2011-05-21 14:15:31