Php 要删除的唯一div-通过jquery事件实时生成的div

Php 要删除的唯一div-通过jquery事件实时生成的div,php,jquery,Php,Jquery,我有一个jQuery,每5秒触发一个带有实时更新的div。那很好。有时这些更新应该立即删除 jQuery生成如下html: <form> <div id="live1">Aha I love you too <input id="live1" type="hidden" value="1"><label id="livedel1">Delete 1</label> </div> <div id="live2">

我有一个jQuery,每5秒触发一个带有实时更新的div。那很好。有时这些更新应该立即删除

jQuery生成如下html:

<form>

<div id="live1">Aha I love you too
<input id="live1" type="hidden" value="1"><label id="livedel1">Delete 1</label>
</div>

<div id="live2">Thx man
<input id="live2" type="hidden" value="2"><label id="livedel2">Delete 2</label>
</div>

</form>
$('form').on('click', 'label', function() {
    var num = $(this).attr('id').replace(/livedel/, '');
    $('#live'+num).remove();
});

啊哈,我也爱你
删除1
Thx人
删除2
。。。等等

我需要一些关于HTML和jQuery的帮助,如何将特定id发送/分离到jQuery,以便将其删除,因为我不太喜欢jQuery VAL。删除不是问题,只是为了让jQuery获取特定的id


欢迎使用HTML和jQuery中的建议,可以将上层HTML更改为xy代码。没有问题。

首先,您有多个具有相同id的元素。这是无效的HTML,将给您带来问题

如果要在单击标签时删除div,可以执行以下操作:

<form>

<div id="live1" class="live">Aha I love you too
<input id="livehidden1" type="hidden" value="1"><label id="livedel1">Delete 1</label>
</div>

<div id="live2" class="live">Thx man
<input id="livehidden2" type="hidden" value="2"><label id="livedel2">Delete 2</label>
</div>

</form>
关键是将您的ID修复为有效,并向父元素添加class
live
。然后可以使用jQuery搜索DOM并删除父
live
元素。但是,从你的问题很难判断这是否是你真正想要做的

如果您不想更改html,除了无效ID之外,还需要执行以下操作:

<form>

<div id="live1">Aha I love you too
<input id="live1" type="hidden" value="1"><label id="livedel1">Delete 1</label>
</div>

<div id="live2">Thx man
<input id="live2" type="hidden" value="2"><label id="livedel2">Delete 2</label>
</div>

</form>
$('form').on('click', 'label', function() {
    var num = $(this).attr('id').replace(/livedel/, '');
    $('#live'+num).remove();
});
这就假设您的html可能因项目而异。如果您的结构总是相同的,那么您就不必弄乱ID,只需使用
.parent()
,尽管正如我所建议的,它不是非常健壮

$('form').on('click', 'label', function() {
    $(this).parent().remove();
});

首先,您拥有具有相同id的多个元素。这是无效的HTML,将给您带来问题

如果要在单击标签时删除div,可以执行以下操作:

<form>

<div id="live1" class="live">Aha I love you too
<input id="livehidden1" type="hidden" value="1"><label id="livedel1">Delete 1</label>
</div>

<div id="live2" class="live">Thx man
<input id="livehidden2" type="hidden" value="2"><label id="livedel2">Delete 2</label>
</div>

</form>
关键是将您的ID修复为有效,并向父元素添加class
live
。然后可以使用jQuery搜索DOM并删除父
live
元素。但是,从你的问题很难判断这是否是你真正想要做的

如果您不想更改html,除了无效ID之外,还需要执行以下操作:

<form>

<div id="live1">Aha I love you too
<input id="live1" type="hidden" value="1"><label id="livedel1">Delete 1</label>
</div>

<div id="live2">Thx man
<input id="live2" type="hidden" value="2"><label id="livedel2">Delete 2</label>
</div>

</form>
$('form').on('click', 'label', function() {
    var num = $(this).attr('id').replace(/livedel/, '');
    $('#live'+num).remove();
});
这就假设您的html可能因项目而异。如果您的结构总是相同的,那么您就不必弄乱ID,只需使用
.parent()
,尽管正如我所建议的,它不是非常健壮

$('form').on('click', 'label', function() {
    $(this).parent().remove();
});

你的问题有些模糊,所以我现在假设你真正想要什么

根据您的HTML(可以改进),每当单击标签(“删除”标签)时,下面将删除父元素(div)

通过使用用于删除标签的类、将单击事件委托给容器元素(而不是主体)等,可以极大地改进这一点

有了这样的HTML(稍微干净一些,IMHO):


你的问题有些模糊,所以我现在假设你真正想要什么

根据您的HTML(可以改进),每当单击标签(“删除”标签)时,下面将删除父元素(div)

通过使用用于删除标签的类、将单击事件委托给容器元素(而不是主体)等,可以极大地改进这一点

有了这样的HTML(稍微干净一些,IMHO):


如果我理解正确,您需要在调用中单击
时删除更新的顶层
。例如,您可以执行以下操作:

$('label.deleteTrigger').live(function(){
    $(this).parentUntil('div').remove();
});
这将向上移动祖先,直到找到指定的选定项(在我的示例中为
div
),并将其从
DOM
中删除。你可以阅读更多关于它的内容


此外,您还需要将
删除触发器
,在我的示例中也是如此)添加到
标签
,这样就有了一种方法来识别触发删除的元素。

如果我理解正确,您需要在调用
时删除更新的顶级
。例如,您可以执行以下操作:

$('label.deleteTrigger').live(function(){
    $(this).parentUntil('div').remove();
});
这将向上移动祖先,直到找到指定的选定项(在我的示例中为
div
),并将其从
DOM
中删除。你可以阅读更多关于它的内容


此外,您还需要将
删除触发器
,在我的示例中也是如此)添加到
标签
,这样就有了一种方法来识别触发删除的元素。

什么是jQuery VAL?“I upper HTML即将更改没有问题”是什么意思?要删除第一个元素,例如:$(“#live1”).remove();还是你在问别的问题?@Juhana。。这意味着我可以更改这个问题中编写的html,遵守推荐的代码没有问题。@乔丹。。我不知道在jquery中如何将数字与#live1或#live2等分开让我们说一下……jquery VAL是什么?“I upper HTML即将更改没有问题”是什么意思?要删除第一个元素,例如:$(“#live1”).remove();还是你在问别的问题?@Juhana。。这意味着我可以更改这个问题中编写的html,遵守推荐的代码没有问题。@乔丹。。在jquery中,我不知道如何将数字与#live1或#live2等分开……是的,与我的答案类似,但更好,因为我的答案有点不推荐:)只需从div混乱中获取特定的id:)我想这样就可以:)要从id中获取数字,请参见我的第二个示例。然而,我倾向于第一种解决方案。它需要更少的计算,更健壮,并且依赖于类和DOM结构,这是处理问题的最佳方式。我已经测试过了,它确实做到了!!但这段代码可以工作,因为它是jquery生成的$('.live').live('click','label',function(){$(this).closest('.live').remove();});是的,与我的答案类似,但更好,因为我的答案有点不推荐:)只需从div混乱中获取特定id:)我想这就可以了:)要从id中获取数字,请参见我的第二个示例。然而,我倾向于第一种解决方案。它需要更少的计算,更健壮,并且依赖于classe