2012-09-20 63 views
1

我有一個下面的剃刀創建一個表。如何使用jQuery獲取錶行的屬性值?

@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 [email protected] [email protected] [email protected] [email protected] [email protected](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代碼片斷。

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

var trows = SearchFieldsTable[0].rows; 

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

但上述不返回我期望的ColumnName。

+0

請發佈渲染的標記而不是服務器端代碼。 – undefined

回答

2

試試這個;

$("#trowId").attr("attrbuteName"); 
2

您可以通過class和id像

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

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

您在每次迭代中定義一個局部變量中獲得的價值,現在你的ColumnName變量只存儲的最後一個屬性行。還有ColumnName不屬於有效屬性。您可以使用data-*屬性和map方法。

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

現在COLUMNNAME是列名的數組。

0

一些瀏覽器將不支持自定義屬性。所以,你可以更好地使用data()

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

與該行中,將其定義爲:

<tr [email protected] ... 
1

可能這會有所幫助。

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

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

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

FYI: 「TBODY的」 沒有 「行」。以下是錯誤的

SearchFieldsTable[0].rows 

您可以改用以下代碼來使用上述代碼。

var SearchFieldsTable = $("#SearchFieldsTable");