在数组输出中添加一个空格

时间:2019-01-03 19:12:17

标签: jquery

目标

我正在收集每个导航项的文本值并将其存储在变量中。然后,我将该变量与设置值变量进行比较,以便可以对匹配的变量进行处理。

问题

当我运行控制台日志时,第一个变量将输出导航文本,但是它们都被粉碎在一起,因此查询永远不会与设置变量匹配。

代码

$( ".item_text" ).each(function() {
    var text = $('.item_text').text() + " ";
    var comparingText = 'Shop'

    if(text == comparingText){
          $('.item_text').css('display','none');
    };

    // console.log(text);
});

我已经留了+“”,因为这是我认为可以完成的事情,但是输出仍然模糊不清。

2 个答案:

答案 0 :(得分:1)

相反,使用.indexOf()来查找字符串的该部分是否存在,然后可以在其上应用hide()

$(function () {
  var compareText = "Hello";
  $( ".item_text" ).filter(function () {
    return $(this).text().trim() === compareText;
  }).hide();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item_text">Hello</div>
<div class="item_text">World</div>

确保.item_text仅在需要的地方。这将定位类为class="item_text"的所有元素。

答案 1 :(得分:1)

$( ".item_text" ).each(function() {
    //get the text for just the element being iterated over
    var text = $(this).text();
    var comparingText = 'Shop';

    if(text == comparingText){
      //same thing here
      $(this).hide();
    };
});

//however this could also be done with a filter

$( '.item_text' ).filter(function(){
  return $(this).text() === 'Shop';
}).hide();