我的div标签中定义了状态ID,该标记存在于phtml文件中。现在,我需要将其值读取到seprate javascript文件中。
我已经使用了jquery push方法。
phtml文件中的代码:
<table class="abc">
<tbody id="checkboxes">
<tr class="r<?php echo $item['id']; ?><?php echo ($item['status_low']?' status-low':''); ?>">
<td><input type="checkbox" name="item" class="row" statusid="<?php echo $item['status_id']; ?>"</td>
<td><?php echo $item['id']; ?></td>
<td><?php echo $item['title']; ?></td>
</tr>
</tbody>
</table>
Javascript文件中的代码:
var selected = [];
$('#checkboxes input:checked').each(function() {
if ($(this).checked) {
selected.push($(this).attr('statusid'));
}
});
console.log(selected);
当我打印选定的数组时,我得到一个空白输出。
谁能告诉我哪里出错了?
答案 0 :(得分:1)
试试这个: -
var selected = [];
$("input[type='checkbox']").each(function(){
if($(this).is(':checked'))
{
selected.push($(this).attr('statusid'));
}
});
OR
var selected = [];
$("#checkboxes input[type='checkbox']").each(function(){
if($(this).is(':checked'))
{
selected.push($(this).attr('statusid'));
}
});
OR
var selected = [];
$("#checkboxes input[type='checkbox']:checked").each(function(){
selected.push($(this).attr('statusid'));
});
答案 1 :(得分:1)
只需删除您的if
条件,如下所示。您的选择器仅适用于选中的复选框,因此无论如何您都不需要。
$('#checkboxes input:checked').each(function() {
selected.push($(this).attr('statusid'));
});
答案 2 :(得分:0)
像这样更改你的JQuery代码,
$('#checkboxes input:checked')
到
$("#checkboxes input[type='checked']")
您的代码是:::
var selected = [];
$("#checkboxes input[type='checked']").each(function() {
selected.push($(this).attr('statusid'));
});
console.log(selected);
答案 3 :(得分:0)
&#34; #checkboxes输入:选中&#34;选择器已选中已选中复选框,因此您无需检查复选框是否已选中。见http://api.jquery.com/checked-selector/
var selected = $.map('#checkboxes input:checked',function(ck,i){
return $(ck).attr('statusid');
})
答案 4 :(得分:0)
你可以尝试这个
var selected = $('#checkboxes input:checkbox:checked.row').map(function () {
var cbId = this.id;
return cbId;
}).get();