使用选中的复选框

时间:2016-08-07 17:38:30

标签: jquery checkbox html-table clojurescript

我有一个html表,其中每行的第一个单元格包含一个复选框。我想通过选中复选框获取每行的索引。我可以访问JQuery js/$

这是我到目前为止所做的,但它只返回Javascript对象,我无法从中提取索引。

(-> (js/$ "#table tr")
    (.has ":checkbox:checked")
    (.find "td:eq(1)")
    (.each (fn [e] (.text (js/$ e)))))

3 个答案:

答案 0 :(得分:2)

我不熟悉问题中的语法,但这个jquery代码应该很容易翻译。



$("button").on("click", function() {
  var trs = $("input:checked").closest("tr"); //get tr elements of checked inputs
  var indexes = $.map(trs, function(tr) { return $(tr).index(); }); //make an array containing the indexes of these tr elements

  console.log(indexes);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Get Selected Indexes</button>
<table>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td><input type="checkbox" /></td>
    </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

基于Ozan的Javascript答案,我能够提出这个解决方案:

 (.map js/$ (-> (js/$ "#table tr")
            (.has ":checkbox:checked")) (fn [tr] (.index (js/$ tr))))

答案 2 :(得分:0)

Ozan 的解决方案按我的预期工作,但是,如果我搜索特定术语并在新呈现的表中选择一行(过滤后),我得到的索引是相对于这个新表的。为了避免这种情况,我先清除过滤,然后使用 Ozan 的答案。我不认为这是最好的方法,但我把它放在这里,以防它可以帮助任何面临相同问题的人。

我使用这行代码在获取索引之前清除过滤器。

table.search("").draw();