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();
});