我想要做的是从表中选择所有记录,只从第2列中选择类别为c
的记录#SelectField_c_r1c2 (row 1 cell 2 category c) , #SelectField_c_r2c2 (row 2 cell 2 category c) ...
并计算数字并使用.each()
我试图使用.size()和.each(),但它不起作用,请参阅:
http://jsfiddle.net/ndr8wk44/
var select_rec_categ = "c";
var select_rec_col = 2
$('"[id ^=#SelectField_" + select_rec_categ + "_r][id $=c" + select_rec_col+"]"').size();
$('"[id ^=#SelectField_" + select_rec_categ + "_r][id $=c" + select_rec_col+"]"').each( function() {
alert($(this).val());
});
请帮忙!!
答案 0 :(得分:2)
您有两个问题:第一个问题是您未在语句的第一个段上关闭单引号。另一个原因是您在ID选择器中使用了#
,但由于您使用的是属性选择器,因此您无需包含#
。
这将为您提供以下列:
var cols = $("[id ^=SelectField_" + select_rec_categ + "_r][id $=c" + select_rec_col+"]");
那么你可以做点数计算:
var count = cols.length;
然后迭代它们以访问值,执行:
cols.each(function () {
alert($(this).val());
});
答案 1 :(得分:0)
不确定理解你要做什么。也许是这样的?
var id = '#SelectField_' + select_rec_categ + '_r1c' + select_rec_col;
$(id + " option").each( function() {
alert($(this).val());
});
答案 2 :(得分:0)
这会提醒3
然后提醒3个空值和所选文本(因为没有value
属性)
var select_rec_categ = "c";
var select_rec_col = 2;
var sel = "[id^=SelectField_" + select_rec_categ + "_r][id$=c" + select_rec_col+"]";
$(document).ready(function(){
alert($(sel).size());
var str = '';
$(sel).each( function(idx,el) {
el = $(el)
var opt = el.find(':selected')
str += idx + ': value="' + el.val() + '" text="' + opt.text() + '"\n';
});
alert(str);
});
小提琴here