获取复选框标签

时间:2018-03-19 09:45:41

标签: javascript html5 dom getelementsbyclassname

这里我试图获取已检查项目的名称。例如,我想获取名称牛奶并显示它。

这是代码:

var ckboxes=document.getElementsByClassName("ckbox");
  for(i=0;i<ckboxes.length;i++){
  if(ckboxes[i].checked==true){
    values=ckboxes[i].value;
    console.log(values);
  }
}
<html>
  <body>
    <label><input type="checkbox" value="" class="ckbox">Milk</label>
  </body>
</html>

2 个答案:

答案 0 :(得分:4)

您可以获得next sibling node

ckboxes[i].nextSibling.nodeValue

<强>演示

&#13;
&#13;
var ckboxes = document.getElementsByClassName("ckbox");
for (i = 0; i < ckboxes.length; i++) {
  values = ckboxes[i].value;
  console.log(ckboxes[i].nextSibling.nodeValue);
}
&#13;
<label><input type="checkbox" value="" class="ckbox">Milk</label>
&#13;
&#13;
&#13;

但是,如果您的代码在label之内和input之后会有换行符,那么请使用@ teemu的建议

ckboxes[i].parentElement.textContent;

答案 1 :(得分:1)

public void SaveClass(View view) { String className = className_EditeText.getText().toString(); String uniName = uniName_EditeText.getText().toString(); String classNumber = classNumber_EditText.getText().toString(); database.OpenDatabase(); database.SaveClass(className , classNumber , uniName);//SaveClass If Find Same Data Will Not Save database.close(); //I want to only when data is saved (intent run) Intent intent = new Intent(); intent.setClass(this , MainActivity.class); startActivity(intent);} 不是Milk的一部分。它是checkbox的一部分。另外,您不应访问label,而应访问value

&#13;
&#13;
textContent
&#13;
var ckboxes=document.getElementsByClassName("ckbox");
for(i=0;i<ckboxes.length;i++){
  if(ckboxes[i].checked==true){
    var values=ckboxes[i].parentNode.textContent;
    console.log(values);
  }
}
&#13;
&#13;
&#13;