Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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/2/jquery/68.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 如何使用类名迭代每个元素_Javascript_Jquery_Meteor - Fatal编程技术网

Javascript 如何使用类名迭代每个元素

Javascript 如何使用类名迭代每个元素,javascript,jquery,meteor,Javascript,Jquery,Meteor,我试过很多方法,也读过很多方法,但我无法在代码中实现。问题是我想迭代每个来测试的文本是否正在运行或存在,然后删除按钮的类隐藏 下面是我的HTML代码: <template name="controlPanel"> <p>Start, stop and pause containers from this website</p> <input type="button" id="infosRunni

我试过很多方法,也读过很多方法,但我无法在代码中实现。问题是我想迭代每个
  • 来测试
    的文本是否正在运行或存在,然后删除按钮的类隐藏

    下面是我的HTML代码:

    <template name="controlPanel">
      <p>Start, stop and pause containers from this website</p>
      <input type="button" id="infosRunning" value="Get running containers infos">
      <!-- show all running containers -->
      <div>
        {{#if wantInfos}}
        <ul class="container">
            {{#each infos 'running'}}
              {{> container}}
            {{/each}}
    
        </ul>
        {{/if}}
      </div>
    <!-- ///////////////////////////////////// -->
    <input type="button" id="infosStop" value="Get stopped containers infos">
    <!-- show all running containers -->
    <div>
      {{#if wantInfosStop}}
      <ul class="container">
          {{#each infos 'exited'}}
            {{> container}}
          {{/each}}
      </ul>
      {{/if}}
    </div>
    <!-- ///////////////////////////////////// -->
    </template>
    
    
    
    <template name="container">
        <li class="liContainer">
            <div>
                <h3>{{nameContainer}}</h3>
            </div>
            <div id="textContenu">
                <span>ID: {{idContainer}}</span>
            </div>
            <div>
                <span class="state">State: {{stateContainer}}</span>
            </div>
              <button type="button" class="stop hidden">stop this container </button>
              <button type="button" class="start hidden">Start it ! </button>
        </li>
    </template>
    
    但它只显示第一个
  • 的按钮:
    


    有人可以帮我找出为什么我不能迭代每个“容器”?

    JS可以工作-这是一个更干净的版本。如果不查看呈现的HTML,则无法解决任何剩余问题

    stopOrStart=function(){
    $('.liContainer')。每个(函数(){
    var state=$(this.find('.state'),
    running=state.text().includes(“running”);//ES6!。indexOf也可以工作
    $(this.find('.stop').toggle(running);
    $(this).find('.start').toggle(!running);
    });
    }
    $(函数(){
    stopOrStart();
    });
    
    
    
    • 容器1 身份证号码:1 状态:已停止 停下这个容器 开始吧!
    • 容器2 身份证号码:2 状态:它正在运行 停下这个容器 开始吧!
    • 容器3 身份证号码:3 状态:已停止 停下这个容器 开始吧!
    • 容器4 身份证号码:4 状态:它正在运行 停下这个容器 开始吧!

    请编辑您的代码片段,使其实际运行。您没有显示HTMLYes includes()与contains()类似,它只是测试文本是否包含子字符串是的,这很重要。如果您的代码没有运行,我们将无法调试它。因此,现在可以这样做:好的,在我更改代码中的某些内容后,它将工作,这样您就可以输入答案,我将其标记为答案:)谢谢您的帮助
    stopOrStart = function(){
      $('.liContainer').each(function(i, obj) {
         state = $(this).find('.state');
         if(state.text().includes("running")){
           $(this).find('.stop').removeClass('hidden');
         }else{
           $(this).find('.start').removeClass('hidden');     }
       });
    }
    Template.container.onCreated(function containerOnCreated() {
    stopOrStart();
    
    });