Javascript 隐藏已单击的元素,而不是具有相同类的其他元素
如果“this class”存在,但父元素与其他元素共享同一个类,我想隐藏一个元素 基本上,HTML是:Javascript 隐藏已单击的元素,而不是具有相同类的其他元素,javascript,jquery,html,Javascript,Jquery,Html,如果“this class”存在,但父元素与其他元素共享同一个类,我想隐藏一个元素 基本上,HTML是: <div class="mailing-list"> <input type="submit"> </div> <div class="mailing-list"> <input type="submit"> </div> <div class="mailing-list"> <i
<div class="mailing-list">
<input type="submit">
</div>
<div class="mailing-list">
<input type="submit">
</div>
<div class="mailing-list">
<input type="submit">
</div>
在每个
上循环一次。确认元素,选择输入(通过对父元素执行操作)并隐藏它
$('.confirm').each(function(){
$(this).parent().find('input[type="submit"]').hide();
});
添加.confirm
元素后需要调用此函数,如果在追加.confirm
时调用hide更好
$('input[type="submit"]').on('submit',function(e){
e.preventDefault();
$(this).parent().append('<span class="confirm">Joined</span>');
$(this).hide();
//other code here
})
在每个上循环一次。确认元素,选择输入(通过对父元素执行操作)并隐藏它
$('.confirm').each(function(){
$(this).parent().find('input[type="submit"]').hide();
});
添加.confirm
元素后需要调用此函数,如果在追加.confirm
时调用hide更好
$('input[type="submit"]').on('submit',function(e){
e.preventDefault();
$(this).parent().append('<span class="confirm">Joined</span>');
$(this).hide();
//other code here
})
您需要将其绑定到click事件:
$('.maillist>input')。在('click',function()上{
变量$input=$(此),
$parent=$input.parent();//这是邮件列表
$parent.append('Joined');//添加连接的跨距
$input.hide();//隐藏输入
});代码>
您需要将其绑定到单击事件:
$('.maillist>input')。在('click',function()上{
变量$input=$(此),
$parent=$input.parent();//这是邮件列表
$parent.append('Joined');//添加连接的跨距
$input.hide();//隐藏输入
});代码>
隐藏输入元素并将span标记附加到其父类
$('input')。单击(函数(){
$(this.hide();
$(this.parent().append('Joined');
});代码>
隐藏输入元素并将span标记附加到其父类
$('input')。单击(函数(){
$(this.hide();
$(this.parent().append('Joined');
});代码>
除了现有答案外,您还可以使用:has
要修复原始代码,您需要添加此
,以提供:
$("#org-lists").each(function() {
// this = org-list
$(this).find(".mailing-list").each(function() {
// this = mailing-list
// find if this mailing-list has a confirm (need >0 check)
if ($(this).find('.confirm').length > 0) {
// this still = mailing-list
$(this).find('input[type="submit"]').hide();
}
});
});
除了现有答案外,您还可以使用:has
要修复原始代码,您需要添加此
,以提供:
$("#org-lists").each(function() {
// this = org-list
$(this).find(".mailing-list").each(function() {
// this = mailing-list
// find if this mailing-list has a confirm (need >0 check)
if ($(this).find('.confirm').length > 0) {
// this still = mailing-list
$(this).find('input[type="submit"]').hide();
}
});
});
这是所需的解决方案,此处使用@ssamuel代码
$(文档)。在('单击','邮件列表')上,函数(){
$(this.find(“input”).hide();
$(this.parent().append('Joined');
});代码>
这是所需的解决方案,此处使用@ssamuel代码
$(文档)。在('单击','邮件列表')上,函数(){
$(this.find(“input”).hide();
$(this.parent().append('Joined');
});代码>
这是邮件中确认的跨度吗list@Pete是否在内部?是否可以在单击按钮的同时隐藏输入?ie与您添加的类的代码相同?@freedomn-m这是一个小部件的一部分,我无法修改/查看它的代码是邮件中确认的span吗list@Pete是否在内部?是否可以在单击按钮的同时隐藏输入?ie与您添加该类的代码相同?@freedomn-m这是一个小部件的一部分,我无法修改/查看其代码,但单击后才添加confirm
。那么它如何说:如果confirm
存在,那么隐藏submit当您不需要循环时,只需将隐藏代码放在单击事件“how can say if confirm exists”中,这就是$('.confirm')。每个都会做的事情-它只在confirm存在时运行内部部分。但是confirm
只是在单击之后添加的。那么它如何说:如果确认
存在,那么隐藏提交当你不需要循环时,只需将隐藏代码放在点击事件“如果确认存在,它如何说如果确认存在”-这就是$('.confirm')。每一个都做-它只在确认存在时运行内部部分。谢谢。问题是我不能使用单击函数
,因为这会阻止另一个函数运行。因此,应该使用length
或类似的工具来完成,这可能是因为您在就绪状态下运行它,而不是在单击元素后运行它。单击元素后如何运行它?@john285请参见编辑-您可以查看div,然后如果它们发生更改,您可以运行循环来隐藏项目谢谢。问题是我不能使用单击函数
,因为这会阻止另一个函数运行。因此,应该使用length
或类似的工具来完成,这可能是因为您在就绪状态下运行它,而不是在单击元素后运行它。单击元素后如何运行它?@john285请参见编辑-您可以查看div,然后如果它们发生更改,您可以运行循环来隐藏项目谢谢。问题是我不能使用单击函数
,因为这会阻止另一个函数运行。所以应该用length
或类似的东西来完成。谢谢。问题是我不能使用单击函数
,因为这会阻止另一个函数运行。所以应该用长度或类似的东西来完成