我试图在数据选项中更新'id'和'selected'。用jquery更新数据对象
HTML:
<span class="re_highlight-feature" data-toggle="tooltip" data-animation="false" data-placement="top" title="" data-options="{'id':0,'name':'Appliance','value':'Dryer','selected':false}" data-original-title="Highlight Dryer">Dryer</span>
我能够引用它们,并通过正确的价值观,以我的AJAX功能。
JS:
$('.re_highlight-feature').click(function(e) {
e.preventDefault();
var feature = $(this);
var featureDislay = feature.text();
var featureData = feature.data('options');
feature.html('<i class="fa fa-refresh fa-spin fa-fw"></i><span class="sr-only">Loading...</span>');
$.ajax({
type:"POST",
url: "/wp-admin/admin-ajax.php",
data: {action:'highlightFeature', id:featureData.id, name:featureData.name, value:featureData.value, selected:featureData.selected},
success:function(json){
obj = JSON && JSON.parse(json) || $.parseJSON(json);
var recordID = obj.id;
if (recordID == 0){
featureData['id'] = 0;
featureData['selected'] = false;
} else {
featureData['id'] = recordID;
featureData['selected'] = true;
}
feature.html(featureDislay);
feature.toggleClass('mark');
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
});
一切正常,除了这一点:
if (recordID == 0){
featureData['id'] = 0;
featureData['selected'] = false;
} else {
featureData['id'] = recordID;
featureData['selected'] = true;
}
我一直无法弄清楚如何我原来的元素中更新这些值。
如果你做'console.log(typeof featureData)'我会打赌你好钱你会得到'string'而不是'object'。如果你想jQuery为你解析它,它必须是***有效的*** JSON,这意味着双引号 – adeneo
[观察此](https://jsfiddle.net/adeneo/nnov3r7u/1/) – adeneo
控制台.log(typeof featureData)返回对象 –