如何从数据表单元格的下拉列表中获取值

How to get value from dropdown in datatables cell

我有两个 datatables 并且在第二个中创建了一个 dropdown 数据来自首先。我创建了一个 jsbin here

如果您向第一个 table 添加几条说明(添加任何文本,然后单击“添加说明”)- 然后单击 Load Copied Data 按钮,您将看到下拉框已填充从第一个 table.

如果我这样做:

$('#btnTest').on('click', function (e) {

    var tsor = $('#tblSORSInstall').dataTable();
    var ins = tsor.fnGetData();


    alert(ins);

});

它基本上为我提供了 下拉列表 的 html - 我如何获得他们选择的值?我想有一个隐藏的列并在 下拉列表 onchange 上更新它,但是有更好的方法吗?

提前致谢

您可以使用 jQuery.map() 生成所选 text/value 的数组,如下所示。

$('#btnTest').on('click', function (e) {

    //var tsor = $('#tblSORSInstall').dataTable();

    var ins = $('#tblSORSInstall').find("tbody select").map(function() {

        return $(this).find(":selected").text() // get selected text
        //return $(this).val() // get selected value

    }).get()

    alert ( JSON.stringify(ins, null, 2) )

});

这是你的JS Bin - updated

使用 tsor.fnGetNodes() 你可以获得所有 table 行节点,然后你可以遍历这些节点并获得 select 值。

最终代码看起来像

 $('#btnTest').on('click', function (e) {
    var tsor = $('#tblSORSInstall').dataTable();
    var ins = tsor.fnGetData();
    var a = tsor.fnGetNodes();
    $.each(tsor.fnGetNodes(), function (index, value) {
        alert($(value).find('select').val());
    });  
});