Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 使用关键字';这';in-IF语句_Javascript_Jquery_This - Fatal编程技术网

Javascript 使用关键字';这';in-IF语句

Javascript 使用关键字';这';in-IF语句,javascript,jquery,this,Javascript,Jquery,This,我有一堆这样设置的对象: <input type="checkbox" id="check30" class="check" name="check30" checked> <input type="text" name="toAddress30" id="name30" class="contactNameInput addressField"> <input type="text" id="contactName30" class="c

我有一堆这样设置的对象:

   <input type="checkbox" id="check30" class="check"   name="check30" checked>

   <input type="text" name="toAddress30" id="name30" class="contactNameInput addressField">

   <input type="text" id="contactName30" class="contactNameInput mailName" name="contactName30">

   <input type="text" id="time30" class="contactNameInput hidden mailTime" name="time30">

   <input type="text" id="day30" class="contactNameInput hidden mailDay" name="day30">

   <input type="text" id="date30" class="contactNameInput hidden mailDate" name="date30">

   <textarea class="additional contactNameInput" id="additional30" name="additional30" placeholder="Additional requests..."></textarea>

   <div class="preview1"></div> 


我认为这样做可以将我的类名“hide”(在CSS中定义为display:none)应用于任何空的.addressField项的父div。然而,很明显,我在这里使用的关键字“this”是关闭的,因为它不工作,在我的文本编辑器中,它显然无法识别这个单词“this”,因为它没有相应的格式。当我将“this”更改为该元素的实际id名称时,它可以正常工作,因此就“.parent()”等而言,我的结构似乎还可以-我只是不确定如何在此结构中使用“this”。

您需要给出
$(this)
一个上下文,这样您就可以使用for循环通过class
addressField
遍历所有元素:

$(".addressField").each(function(){
    if( $(this).val() === "" ) {
        $(this).parent().addClass("hide");
    } 
})
注意:地址字段是和
输入
字段元素,因此它没有
html()
属性,您应该使用
.val()
获取输入值

$(“.addressField”)。每个(函数(){
if($(this).val()=“”){
$(this.parent().addClass(“hide”);
}
})
.hide{
显示:无;
}

$(这个)
在JQuery中是指调用函数的东西。例如:

  • $(“选择器”)。单击(函数(){alert(this);})
    这是指事件处理程序触发的DOM元素。基本上,
    $(“选择器”)
    分解为什么

的值取决于它所在的上下文。如果
块未为此
引入新的上下文,则为
引入
。我想您可能对如何在jQuery回调函数中使用
这个
感到困惑。只有函数和类引入了新的上下文。jQuery自动将其回调函数中的当前元素绑定为
this

因此,您可以通过对所选的每个元素执行一个函数,从而使该
引用每个元素:

$(".addressField").filter(function(){
  return $(this).value() === ""
}).each(function() {
   $(this).parent().addClass("hide");
});
但是,使用以下代码可以更轻松地完成您尝试执行的操作:

$(".addressField").filter(function(){
  return $(this).value() === ""
}).parent().addClass("hide");

所有
.addressField
s,过滤掉所有非空字段,获取它们的父函数,然后立即对它们执行所需操作。

如果存在此
,是否也可以显示父函数?请阅读。这不是jQuery概念,而是Javascript概念<代码>在函数内部,它的值取决于函数的调用方式。
这正是我想要的。谢谢。我知道我设置“this”关键字的上下文有问题,但我不太确定解决方案是什么。非常感谢你的帮助。
$(".addressField").filter(function(){
  return $(this).value() === ""
}).parent().addClass("hide");