选中以检索具有相同selectedindex值的所有下拉列表

时间:2013-08-01 20:32:32

标签: jquery selector html-select

我表格中的每一行都有一个下拉列表。下拉列表中的值为“编辑”和“取消”。我想编写一个jquery选择器,它将返回所有下拉列表,其中selectedvalue为“Edit”。我该怎么做?

所有行的编辑控件名称相同。像这样动态地形成编辑控件。下面的代码在循环内。

    $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); 

长度为零。

2 个答案:

答案 0 :(得分:2)

您可以使用filter功能:

var editSelects = $("table tr select").filter(function() {
    return $(this).find("option").text() == "Edit"; //This should be value, but for your code, its text()
});

另外,根据@JasonP评论,您的ID 必须是唯一的。

答案 1 :(得分:0)

如果选择=编辑

,它会正常工作
var table = document.getElementById("prsnl");  
var rows = table.getElementsByTagName("tr"); 
for(j = 0 ; rows.length; j++){
var select = rows[j].getElementsByTagName("select");
    for(i = 0; i < select.length; i++){
        alert(select[i].value);
        if(select[i].value.indexOf("Edit") >= 0){
            alert('hi');
        }else{
            alert('fail');
        }
    }
}