2

テーブルを作成するための次のかみそりがあります。

@model IEnumerable<iBoxV5.Model.Common.AdvancedSearch>
<table id="SearchFieldsTable">
  <thead>
    <tr>
    <th>
        ColumnName
    </th>
    <th>
        FilterValues
    </th>
    <th>Updated Before</th>
    </tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr ColumnName=@item.ColumnName DatabaseColumn=@item.DatabaseColumn DisplayName=@item.DisplayName Datatype=@item.Datatype id=@(index++)>
    <td>
        @Html.DisplayFor(modelItem => item.ColumnName)
    </td>
    <td>
        @Html.TextBoxFor(modelItem => item.FilterValue, new { @class = "FrmTextBox advSearch" });

        @Html.TextBoxFor(modelItem => item.FilterValue, new { @class = "FrmTextBox advSearch" });
    </td>
    <td>
        @Html.TextBoxFor(modelItem => item.FilterValueTo, new { @class = "FrmTextBox advSearch" });
    </td>
</tr>
}
</tbody>
</table>

上記では、ColumnName などの属性をいくつか追加しました。

テーブルの各行の JSON を作成したいと考えています。

次のjquery Snippetで試しました。

var SearchFieldsTable = $("#SearchFieldsTable tbody");

var trows = SearchFieldsTable[0].rows;

$.each(trows, function (index, row) {
    var ColumnName=$(row).attr("ColumnName");
});

しかし、上記は私が期待した ColumnName を返していません。

4

5 に答える 5

5

これを試して;

$("#trowId").attr("attrbuteName");
于 2014-03-07T21:23:08.650 に答える
2

これが役立つかもしれません。

var SearchFieldsTable = $("#SearchFieldsTable tbody");

var trows = SearchFieldsTable.children("tr");

$.each(trows, function (index, row) {
    var ColumnName=$(row).attr("ColumnName");
    // .... Your codes here 
});

参考までに、 「tbody」には「行」がありません。以下は間違っています

SearchFieldsTable[0].rows

上記のコードを使用する代わりに、次のコードを使用できます。

var SearchFieldsTable = $("#SearchFieldsTable");
于 2012-09-20T10:32:09.700 に答える
2

クラスまたはIDのいずれかで値を取得できます

var ColumnName=$(row).attr(".ColumnName").val();

また

var ColumnName=$(row).attr("#ColumnName").val();
于 2012-09-20T10:21:11.767 に答える
0

一部のブラウザはカスタム属性をサポートしません。だから、あなたはよりよく使うことができますdata()

var ColumnName = $(row).data("ColumnName");

そして、その行で、次のように定義します。

<tr data-ColumnName=@item.ColumnName ...
于 2012-09-20T10:23:03.150 に答える
0

各反復でローカル変数を定義しています。現在、ColumnName 変数は最後の行の属性のみを格納しています。またColumnName、有効な属性ではありません。data-*属性とmapメソッドを使用できます。

var columnName = $("#SearchFieldsTable tbody tr").map(function(){
                      return $(this).data('ColumnName')
                 })

columnName は列名の配列です。

于 2012-09-20T10:21:48.490 に答える