Javascript 在父div中添加类 $('.parent>*') .focus(函数(){ $('.parent').addClass('focused'); }) .blur(函数(){ $('.parent').removeClass('focused'); });
仅当输入字段有值时,我才尝试在div中添加一个类。 我的意思是,如果我们把文本放在输入字段中,div会自动添加一个类,它是self。唯一的问题是我们不能给出任何类名或Id 输入 使用这个脚本,我们可以在单击输入时添加类。但我们需要做更多Javascript 在父div中添加类 $('.parent>*') .focus(函数(){ $('.parent').addClass('focused'); }) .blur(函数(){ $('.parent').removeClass('focused'); });,javascript,jquery,html,Javascript,Jquery,Html,仅当输入字段有值时,我才尝试在div中添加一个类。 我的意思是,如果我们把文本放在输入字段中,div会自动添加一个类,它是self。唯一的问题是我们不能给出任何类名或Id 输入 使用这个脚本,我们可以在单击输入时添加类。但我们需要做更多 我们可以这样做吗?使用您提供的html,应该可以 <div class="parent"> <input type="text" /> </div> $('.parent > *') .focus(functi
我们可以这样做吗?使用您提供的html,应该可以
<div class="parent"> <input type="text" /> </div>
$('.parent > *')
.focus(function() {
$('.parent').addClass('focused');
})
.blur(function() {
$('.parent').removeClass('focused');
});
评论后更新
$('.parent > *')
.focus(function() {
if( $(this).val().length) $(this).parent().addClass('focused');
})
.blur(function() {
if( $(this).val().length) $(this).parent().removeClass('focused');
});
你好
$('.parent>*')
.focus(函数(){
$(“.some div”).addClass('focused');
})
.blur(函数(){
$('.some div').removeClass('focused');
});
当然,只需使用
.parent>输入即可:
<div class="some-div">Hello</div>
<div class="parent"> <input type="text" /> </div>
$('.parent > *')
.focus(function() {
$(".some-div").addClass('focused');
})
.blur(function() {
$('.some-div').removeClass('focused');
});
您可以使用input
而不是focus
。您还必须检查该值以添加/删除该类。请尝试以下方法:
$(文档).ready(函数(){
$('.parent>*').focus();
$('.parent>*')
.on('input',function(){
如果($(this.val().trim()!=“”)
$(this.parent().addClass('focused');
其他的
$(this.parent().removeClass('focused');
});
});代码>
聚焦{
颜色:红色;
}
测试
此处输入
在键盘输入、鼠标拖动、自动填充和复制粘贴上激发事件
你可以试试下面的代码-
函数切换父类(elem){
console.log(elem.val());
if(elem.val().length)
元素最近('.parent').addClass('focused');
其他的
元素最近('.parent')。removeClass('focused');
}
$('.parent')。在('input',function()上{
toggleParentClass($(this.find('input'));
});代码>
聚焦{
背景色:红色;
}
在输入字段中放置一个事件侦听器怎么样
如果输入框变为空,请删除该类。否则,添加所需的类
帮助您找到具有给定选择条件的最近成员
对于集合中的每个元素,获取与
通过测试元素本身并向上遍历其
DOM树中的祖先
这很好用。但当我们在输入中输入值时,生成的类会添加输入。我们需要在另一个外部div中添加类。我们可以编辑它吗?是的,提供正确的选择器,它应该工作$('selector')。addClass('focused')代码>这是可行的,逻辑上有一个小问题。当输入值为时,div将自己添加一个新类。是的,div将被添加到类中。您希望如何使用它?当我们在输入中键入某些内容时,div应该生成一个新类。另外,假设我们正在刷新页面(不是硬刷新),值仍然存在于输入中,那么生成的类也应该存在于div中。但当我们在输入中输入值时,生成的类会添加输入。我们需要在另一个外部div中添加类。我们可以编辑这个吗?另一个外部div?是的,假设输入在三个div中。所以我们可以为它们中的任何一个生成新类。这很有效。唯一的问题是当我们刷新类时,该类正在删除,但值仍然存在。我们能为此做点什么吗。这就是逻辑,对吗?我只是问我是否错了,请纠正我。谢谢:)你快到了。你能帮忙吗?@Coder95,根据我的逻辑,在页面刷新时,值和类都不应该在那里……有没有办法使该类在那里?@Coder95,但如果最初输入中没有值,为什么要将该类添加到元素中?但是,先生,当我们刷新页面时(不是硬刷新)值存在,但类不存在。我们的逻辑是,只要输入有值,div就应该将类添加到slef中。(1) 当我们刷新页面时,值仍然存在。(2) 单击“提交”按钮时,如果值错误,则会显示错误消息。我的意思是价值观也会存在。因此,在这两种情况下,学生也必须在场。这似乎是一个完全不同的问题。您会处理输入值保留吗?如果您将文本拖放到输入字段中会怎么样?还是用鼠标右键单击粘贴?
$('.parent > input')
.focus(function() {
$('.parent').addClass('focused');
})
.blur(function() {
$('.parent').removeClass('focused');
});
$('input').change(function(){
if( $(this).val().trim() === '' ){//Empty input box
$(this).closest('.parent').removeClass('focused');
}
else{
$(this).closest('.parent').addClass('focused');
}
}
);