Javascript 仅向列表中的第一个按钮添加功能
我的HTML(精简版) 基本上,我想做的是:Javascript 仅向列表中的第一个按钮添加功能,javascript,jquery,Javascript,Jquery,我的HTML(精简版) 基本上,我想做的是: “创建第一个”按钮以删除父列表项 如果按钮是中唯一的按钮,请删除整个列表和另一个元素 如何才能正确执行此操作?您只需评估是否有多个元素,请尝试以下操作: $('body')。在('click','li>按钮',函数(){ 如果($('li>按钮')。长度>1)){ $(this.parent().remove(); }否则{ $(this.parents('ul').remove(); console.log('删除其他项') } })
- “创建第一个”按钮以删除父列表项
- 如果按钮是
中唯一的按钮,请删除整个列表和另一个元素
如何才能正确执行此操作?您只需评估是否有多个元素,请尝试以下操作:
$('body')。在('click','li>按钮',函数(){
如果($('li>按钮')。长度>1)){
$(this.parent().remove();
}否则{
$(this.parents('ul').remove();
console.log('删除其他项')
}
})
-
去除
-
去除
您只需评估是否有多个元素,请尝试以下操作:
$('body')。在('click','li>按钮',函数(){
如果($('li>按钮')。长度>1)){
$(this.parent().remove();
}否则{
$(this.parents('ul').remove();
console.log('删除其他项')
}
})
-
去除
-
去除
更改您的功能,以检查最后一个是否已删除(如下所示:
不再有):
更改您的功能以检查最后一个
是否已删除(如下所示:
不再有):
如果它不是第一个按钮,那该怎么办?最后一个关闭按钮实际上应该是})代码>它删除了它的父级,但我得到了这样的工作思路:)它不是我的整个JS文件,因此在进入stackoverflow时出现了语法错误。谢谢你的注意@pmahome您正在尝试查看它是否是删除后的第一个元素。您应该在删除它之前检查它。最好是在删除lis后查看是否只有lis。如果它不是第一个按钮,该怎么办?最后一次关闭}
实际上应该是})代码>它删除了它的父级,但我得到了这样的工作思路:)它不是我的整个JS文件,因此在进入stackoverflow时出现了语法错误。谢谢你的注意@pmahome您正在尝试查看它是否是删除后的第一个元素。您应该在删除它之前检查它。最好在删除lis后再查看是否没有lis。这不起作用。当剩下一个按钮时,它应该删除整个列表。但是更简单的代码谢谢@DaniP@Heraclitus该代码的工作原理与父类('ul')
相同。父类()
但更简单。。。哦,是的,你说得对!我以为这只是删除了李。毕竟,我是通过和李和ul的合作才成功的,谢谢@DaniP很高兴能帮助你@Heraclitus,如果它有用的话,别忘了把它标记为解决问题的答案。这是行不通的。当剩下一个按钮时,它应该删除整个列表。但是更简单的代码谢谢@DaniP@Heraclitus该代码的工作原理与父类('ul')
相同。父类()
但更简单。。。哦,是的,你说得对!我以为这只是删除了李。毕竟,我是通过和李和ul的合作才成功的,谢谢@DaniP很高兴能帮助你@Heraclitus,如果有用的话,别忘了把它标记为解决问题的答案谢谢!我通过和li和ul打交道,而不是和按钮打交道,让它工作起来了!为什么我以前没想到这个!非常感谢。我通过和li和ul打交道,而不是和按钮打交道,让它工作起来了!为什么我以前没想到这个!
<ul>
<li>
<p></p>
<p></p>
<button type="button">Remove</button>
</li>
<li>
<p></p>
<p></p>
<button type="button">Remove</button>
</li>
</ul>
$('body').on('click', 'li > button', function() {
$(this).parent().remove();
if($('li > button').length === 1) { // if this is the only button
$(this).parent().parent().remove(); // remove whole list
// remove some other elements outside the list
}
if($(this).parent().is(':first')) { // if this first li in ul
if (confirm("...")) {
$(this).parent().remove();
}
}
});
$('body').on( 'click', 'li > button', function() {
var list = $(this).closest( 'ul' );
$(this).parent().remove()
//* if the UL is empty we can remove it altogether
if( list ).find( 'li' ).length == 0 ) remove( list );
});