我有一个按钮可以创建一个新的引脚。该针在一个div中。它还创建了一个隐藏输入来记录该引脚被拖动时的位置。在我创建的jquery代码中,我使用.data("my_id",pinNumber)
来标记引脚和输入的div。 PinNumber在创建新引脚时递增。这意味着带有新引脚的div和输入都有一个名为my_id的数据键,其值相同。Jquery .data(),如何检索具有匹配值的元素?
当一个使用点击删除一个引脚上,我希望它删除与该div相关的div和输入。这是我的删除代码。
$(".close").live("click", function() {
var this_id = $(this).parent("div").data("my_id");
$('div[data:my_id='+this_id+']').remove();
var this_id返回正确的引脚ID。不过,我遇到了如何根据数据值而不是数据键选择元素的问题。
我该怎么做?如何选择所有元素或所有div或所有输入,无论哪里,数据值=指定值?我在说Jquery .data()
不是HTML数据标签。
PS我使用的是live()
,因为这些引脚是在使用命中新引脚时创建的,因此当代码首次上线时,DOM元素不存在。一个用途可以创建30个引脚。我需要一种方法,并且我认为data()
方法最适合将针脚div与创建的输入连接。此外,.draggable()
然后会报告具有相同数据值的输入的用户界面位置....需要帮助。
请记住使用三等于运算符=== – 2012-03-21 19:56:20
@Greg,是否有一个原因,你在这种情况下被迫使用严格的相等运算符? – 2012-03-21 20:20:15
因为你不知道this_id是什么类型。最有可能的是,这里不会遇到任何类型的强制错误,但最好使用严格的相等运算符来确保所比较的两个值是相同的类型。唯一不适用的情况是当你试图确定一个值是否为空或未定义。 something == null很好地诀窍 – 2012-03-21 20:24:44