1
我的表中的每一行都有一个下拉列表。下拉列表中的值是“编辑”和“取消”。我想写一个jquery选择器,它会返回所有下拉列表,并具有选定的值作为“编辑”。我该怎么做?选择检索具有相同selectedindex值的所有下拉列表
编辑控件的名称对于所有行都是相同的。像这样动态地形成编辑控制。下面的代码是在一个循环内。
$tr.append(
'<td>' +
'<select id=\"editOption\">' +
'<option value=\"'+pkid+'_select\"></option>' +
'<option value=\"'+pkid+'\">Edit</option>' +
'<option value=\"'+pkid+'\">Cancel</option>' +
'</select>' +
'</td>'
);
按照建议我改变了代码
'<td>' +
'<select id=\"editOption_'+pkid+'\" class=\"editOption\">' +
'<option value=\"-1\"></option>' +
'<option value=\"Edit\">Edit</option>' +
'<option value=\"Cancel\">Cancel</option>' +
'</select>' +
'</td>'
,当我使用此:
var editedRows = $("table tr select").filter(function() {
return $(this).find("option").value == "Edit"; //This should be value, but for your code, its text()
});
console.log(editedRows.length);
长度即将为零。
嗯..两件事情它会提醒。首先,'id's必须是唯一的,这意味着只有一个元素可以有一个特定的id。我会改变id以包含'pkid'并添加一个名为“editOption”的类。其次,这不是使用'value'属性的正确方法。值应该像“edit”和“cancel”一样。 –
按照建议我改变了代码为 '' + \t \t \t \t \t '<选择ID = \ “editOption _ '+ PKID +' \” 类= \ “editOption \”>' + \t \t \t \t \t \t '<选项值= \ “ - 1 \”>' + \t \t \t \t \t \t '<选项值= \ “编辑\”>编辑' + \t \t \t \t \t \t '<选项值= \ “取消\”>取消' + \t \t \t \t \t '' + \t \t \t \t \t '' 和当我使用此变种editedRows = $(“表TR选择“).filter(function(){ \t \t \t return $(this).find(”option“)。value ==”Edit“; //这应该是值,但是对于你的代码,它的文本() \t \t}); \t \t console.log(editedRows.length);长度将为零 – user1447718
为了便于阅读,我将您的评论移至了该问题。而不是'.value'尝试'.attr('value')'。你实际上可以做'返回$(this).val()=='编辑';'而不是,但我不确定。 –