我試圖在數據選項中更新'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)返回對象 –