需要循环使用条件继续

时间:2018-04-27 19:48:01

标签: javascript jquery for-loop

我需要"继续"基于复选框。

HTML:

<input type = "text" id = "E1" /><input type="checkbox" id="C1">
<input type = "text" id = "E2" /><input type="checkbox" id="C2">
<input type = "text" id = "E3" /><input type="checkbox" id="C3">
<input type = "text" id = "E4" /><input type="checkbox" id="C4">

JS:     

for (var i=1; i<=4; i++) { 
if ("$C" +i.checked == true) {continue;} 
...;  
}

</script>

5 个答案:

答案 0 :(得分:3)

continue是用于实现此目的的正确关键字。我怀疑你的案例中的问题是if陈述永远不会成立。

我想你想要这个:

// Add 1 to index first and then concatenate with "#C" to create jQuery id selector
if ($('#C' + (i + 1)).is(':checked')) { continue; }

上面的if声明在功能上等同(检查时):

if ("$Ctrue" == true) { continue; }

$ C 并且连接了布尔值的字符串值。

答案 1 :(得分:0)

如果选中了第i个复选框,则

ed = tf.reduce_sum( tf.square( tf.subtract( x_data[ None, ... ], c ) ), 2 ) phi = tf.transpose( tf.exp( -SC * ed ) ) 会为您提供$("#C" + i).prop('checked')

注意:

  • 循环的方式并不好,因为如果添加/删除输入,您总是需要调整条件。
  • 当您从true
  • 开始时,您的for循环条件也已关闭

1
for (var i = 1; i < 5; i++) { 
  if ($("#C" + i).prop('checked'))
    continue;

  console.log(i + ' unchecked');
  // do some stuff
}

答案 2 :(得分:0)

试试这个。

document.getElementById("test").addEventListener("click", function(){
for (var i=1; i<=4; i++) { 
if($("#C"+i).is(':checked'))
continue;
console.log($("#E"+i).val())

}

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type = "text" id = "E1" /><input type="checkbox" id="C1">
<input type = "text" id = "E2" /><input type="checkbox" id="C2">
<input type = "text" id = "E3" /><input type="checkbox" id="C3">
<input type = "text" id = "E4" /><input type="checkbox" id="C4">

<button id="test" >Test</button>

在这种情况下,它不会记录那些没有选中相邻复选框的输入的值,例如

答案 3 :(得分:0)

你应该做的是分解你的逻辑,以便你的程序可读,你可以用更高级别的术语来表达

function getCheckboxes() {
  const checkboxes = [];
  for (let i = 1; i <5; ++i) {
    checkboxes.push(document.getElementById(`E${i}`);
  }
  return checkboxes;
}

getCheckboxes()
  .filter(checkbox => !checkbox.checked)
  .forEach(checkbox => {
    // do something with an unchecked checkbook
  });

答案 4 :(得分:-3)

您的循环永远不会运行,因为您的代码中没有事件侦听器。您需要将事件侦听器绑定到复选框输入。它看起来像这样:

var checkbox = document.querySelector("input[name=checkbox]");

checkbox.addEventListener( 'change', function() {
  if(this.checked) {
    // output button here
  }
}