0

我有一个使用 php 在 mysql 中获取数据的命令,并使用以下命令删除一个 div(可以删除多个):

echo "<div id='".$experience['index_of_form']."'>";
echo "<a href='#remove' id='remove' name='".$experience['index_of_form']."' style='text-align: right; text-decoration: underline;'>Remove</a>
echo "</div>";

当我看到输出时,名称是 experience1(示例)或 experience2。到现在为止还挺好。

要删除我有这个 jquery 功能:

$('#remove').live("click", function() {
var name_of_experience = $('#remove').attr("name");
$('#'+name_of_experience+'').remove();
});

问题是如果我有一个名为 experience2 的删除链接,他将删除名为 experience1 的 div!我不知道为什么,因为当我在输出中看到时,链接的名称是 experience2 而不是 experience1。

4

2 回答 2

2

我想这与您ID为每个元素分配相同的内容有关。ID's 只能使用一次;ID用 a切换CLASS它应该可以正常工作。

于 2012-04-12T22:31:35.950 回答
1

您不能remove在同一页面内多次使用 id,因为 ID 应该是单个元素的唯一标识符。jQuery 只会采用它在 DOM 中找到的第一个。尝试使用类而不是 id。

从 jQuery 1.7 开始,.live()不推荐使用.on(). 我还冒昧地通过$(this)在获取名称值时使用而不是选择器来添加一个小的性能改进:

$('body').on("click", "a.remove", function() {
   var name_of_experience = $(this).attr("name");
   $('#'+name_of_experience).remove();
});
于 2012-04-12T22:31:42.810 回答