jQuery检查输入是否与具有相同类的元素相同

时间:2017-04-13 12:52:12

标签: jquery

我想检查输入的值是否与具有输入值类的div相同。当它必须出现时,它必须出现。

 $("#submit").click(function(e){

   var tokenValue = $('.valueToken').val();

   console.log($("div").hasClass(tokenValue));

   if(tokenValue == $("div").hasClass(tokenValue)){
       console.log('test');
       $(this).addClass('testClass');
   }
});

这是html:

<div class="a6rqc">
   <p>Token:  a6rqc</p>
   <p>Oefeningen lage rug: lagerugklacht Herhalingen:10 Sets:2</p>
   <p>Oefeningen nek: nekklacht Herhalingen:25 Sets:1</p>
</div>

<div class="f5wfv">
   <p>Token:  f5wfv</p>
   <p>Oefeningen lage rug: lagerugklacht Herhalingen:15 Sets:2</p>
   <p>Oefeningen nek: nekklacht Herhalingen:20 Sets:2</p>
   <p>Oefeningen schouder: schouderklacht Herhalingen:30 Sets:1</p>
</div>

所以基本上当输入文本值与类相同时:a6rqc或f5wfv比它必须显示div

5 个答案:

答案 0 :(得分:2)

  • if(tokenValue == $("div").hasClass(tokenValue))正在测试字符串==布尔值 仅当boolean为true且string为truthy或者boolean为false且string为falsy时才有效

  • 您正在将testClass添加到提交按钮

如果要将testClass添加到带有输入类的div中,这将起作用

 var tokenValue = $('.valueToken').val();
 $("div."+tokenValue).addClass("testClass"); // or .show()

答案 1 :(得分:0)

  

我想检查输入的值是否与div相同   输入值的类。当它必须出现时,它必须出现。

您错误地将string值与boolean值进行了比较:

if(tokenValue == $("div").hasClass(tokenValue))

你想要的是这个:

var tokenValue = $('.valueToken').val();

if($("div").hasClass(tokenValue)){
    console.log('test');
    $(this).addClass('testClass');
}

答案 2 :(得分:0)

在提交时获取input值并将其与div class attribute进行比较。

1 - 如果您的div有一个类名,您可以使用:

 $("#submit").click(function(e){
  if($('div').attr('class')==$('.valueToken').val()){
       console.log('token value matches the div class name');
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div class="something"></div>
<input value="" class="valueToken">
<button id="submit">Submit</button>

2-如果您所需的div有多个类名,您可以使用hasClass方法。

 $("#submit").click(function(e){
  if($('div').hasClass($('.valueToken').val())){
       console.log('token value matches the div class name');
   }
});

在更新你的问题之后,我建议你跳过if子句,然后尝试通过类名获取所需的div并显示它是否存在:

$("#submit").click(function(e){
   $('div').hide();//initially hide all divs
   $("div."+tokenValue).show(); // only show the required div
});

答案 3 :(得分:0)

if ($("div[class='"+tokenValue+"']").length>0) {
  $("div[class='"+tokenValue+"']").addClass('testClass');
}

答案 4 :(得分:0)

$("div").hasClass(tokenValue)  当课程存在或不存在时,它返回true或false。

tokenValue == $("div").hasClass(tokenValue)    这是错误的,因为它会像if(foo == true)一样永远是假的。

你可以试试这段代码

$("#submit").click(function(e){ 
    var tokenValue = $('.valueToken').val();
    if($("div").hasClass(tokenValue)){ 
        $(this).addClass('testClass');
    }
});