Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在父div中添加类 $('.parent>*') .focus(函数(){ $('.parent').addClass('focused'); }) .blur(函数(){ $('.parent').removeClass('focused'); });_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在父div中添加类 $('.parent>*') .focus(函数(){ $('.parent').addClass('focused'); }) .blur(函数(){ $('.parent').removeClass('focused'); });

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

仅当输入字段有值时,我才尝试在div中添加一个类。 我的意思是,如果我们把文本放在输入字段中,div会自动添加一个类,它是self。唯一的问题是我们不能给出任何类名或Id 输入

使用这个脚本,我们可以在单击输入时添加类。但我们需要做更多


我们可以这样做吗?

使用您提供的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');
     }
  }
);