我有一张桌子,每行都会添加一些属性,以后我点击jQuery
的行时需要这些属性。
以下是<tr>
元素的示例:
<tr data-id="1" data-employeeid="4" data-acceess="none" data-area="HR">
<td class="sorting_1" tabindex="0">ID 01</td>
<td>This is a custom descriptiion</td>
</tr>
我想基于json
属性构建data.*
对象,但也要添加列值。
所以在这个例子中我想得到这样的东西:
{'employeeid':'4', 'access':'none', 'area':'HR', 'data1':'ID 01', 'data2':'This is a custom description'}
有任何线索吗?
答案 0 :(得分:1)
如果您使用有效的数据属性
<tr data-id="1" data-employeeid="4" data-acceess="none" data-area="HR">
您只需要$(element).data()
将所有这些作为对象
如果您还要添加所有子元素中的文本,则可以扩展该对象
var tr = $('tr[data-id="1"]');
var data = tr.data();
$.extend(data, $('td',tr).toArray().reduce(function(a,b,i) {
a['data' + (i+1)] = $(b).text();
return a;
}, {}));
console.log(data)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr data-id="1" data-employeeid="4" data-acceess="none" data-area="HR">
<td class="sorting_1" tabindex="0">ID 01</td>
<td>This is a custom descriptiion</td>
</tr>
</table>
&#13;