【问题标题】:Get the selected value in dropdown in a particular column of datatable获取数据表特定列下拉列表中的选定值
【发布时间】:2013-04-23 11:21:48
【问题描述】:

我试图在数据表列的下拉列表中获取选定元素的值。以下是我的代码:

function getstate(item) {
    var rows = $("#content_objects_table").dataTable().fnGetNodes();

    for(var i=0;i<rows.length;i++)
    {
         // Get HTML of 3rd column (for example)
        console.log("item:"+item+" id:"+$(rows[i]).find("td:eq(1)").html());
        if($(rows[i]).find("td:eq(1)").html()==item){
            console.log($(rows[i]).find("td:eq(4)").div.select.data-state);
            return ($(rows[i]).find("td:eq(4)").html());
        }   
    }
};

到目前为止,我能够获得具有下拉列表的列的值。所以我得到了一个如下的 div:

<div class="selectorContainer assemblyCompleted" style="padding-left: 15px;">
    <select class="states" style="width: 150px;" data-objectid="Scorm123" data-state="ready-for-publishing">
        <option value="ready-for-publishing">Ready for Publishing</option>
        <option value="published">Published</option>
        <option value="rework">Rework</option>
    </select>
</div>

如何获取所选选项的值,即数据状态的值,即这里的数据状态是“准备发布”,对应的值是准备发布。

【问题讨论】:

  • 忘记添加 div 模式:
  • 解决了自己使用 $(rows[i]).find("td:eq(4) div option:selected").text();

标签: javascript jquery datatables


【解决方案1】:

试试这个

/* cache row so don't keep creating new object*/
var $row=$(rows[i]);

if($row.find("td:eq(1)").html()==item){
       var state=$row.find("td:eq(4) select.states").data('state');
       var optionText=$row.find('option[value="'+state+'"]').text();

} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多