2017-10-13 88 views
1

我想更改json数组的具体值。查看详细我有这个DOM:更改数据属性json值

<input class="fileupload" type="file" data-form-data='{"table_reference": "data_monitoring", "table_token" : "X43sd"}'>   

我知道如何使用jQuery使用此代码更新数据属性:$(本).attr( '键', '值')

但我如何改变数据属性的特定键,例如上面DOM 需要改变table_token

感谢任何建议

回答

3

您可以使用.data()财产参照特定的属性设置为一个值

$(".fileupload").data().formData.table_token = 123; 
 

 
console.log($(".fileupload").data().formData);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="fileupload" type="file" data-form-data='{"table_reference": "data_monitoring", "table_token" : "X43sd"}'>

如果需求是设置data-*将在HTML中反映出来,你可以使用HTMLElement.dataset

var new_token = "abc"; 

let data = JSON.parse($(".fileupload")[0].dataset.formData); 

data.table_token = new_token; 

$(".fileupload")[0].dataset.formData = JSON.stringify(data); 
+0

我想你意思是'.data().formData.table_token' –

+0

不工作???? https://jsfiddle.net/3gd0qv2x/ – navotera

+0

@navotera不确定你的意思?该属性设置在'.data()'对象 – guest271314