我正在遍历动态创建的表,该表包含包含纯文本,复选框和选择下拉框的行。使用
迭代表格时$('#myTableId td').each ->
thisSelect = $(this).find("option:selected").text()
if thisSelectBox != ""
allSelectValues.splice selectCounter,0, thisSelectBox
selectCounter++
所以这段代码可以获取我的选择值,我对文本框使用了类似的方法。我的问题是得到复选框值。由于表是动态创建的,因此无法通过id获取复选框值,因为表是动态创建的,当我尝试使用此代码时:
$('#tableId td').each ->
thisCheckbox = $(this).find("input.classNameOfCheckbox:checkbox").val()
在迭代包含复选框的td时返回“on”,无论它是否被选中。所以我的问题是这个问题的最佳方法是什么?
答案 0 :(得分:1)
只需将:checked添加到选择器的末尾,它只会选择已选中/选中的元素
$(this).find("input.classNameOfCheckbox:checkbox:checked").val()
如果没有选中,您将获得undefined
。
如果在td .val()中选中了多个复选框,则只返回第一个值。您需要使用.each
或类似的循环方法来获取每个值
演示
jQuery(document.body).append(
"Checked: "+jQuery("div").find("input:checkbox:checked").val()
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="checkbox" value="first" />
<input type="checkbox" value="second" checked />
<input type="checkbox" value="third" />
</div>