2016-10-01 98 views
1
$("div").click(function() {     
    var obj = { flammable: 'inflammable', duh: 'no duh' }; 
    $.each(obj, function (key, value) { 
     alert(key + ": " + value); 
    }); 
}); 

該工作方式沒有問題,並提示鍵/值。將html屬性轉換爲javascript對象

$("div").click(function() {     
    var obj = $(this).attr("obj"); 
    $.each(obj, function (key, value) { 
     alert(key + ": " + value); 
    }); 
}); 

<div obj="{ flammable: 'inflammable', duh: 'no duh' }">click</div> 

但是這不起作用?

回答

0

改變這一行

var obj = $(this).attr("obj"); 

var obj = JSON.parse($(this).attr("obj")); 

此外,您可能需要使用轉義雙引號而不是單引號的對象的內部,使其

<div obj="{ \"flammable\": \"inflammable\", \"duh\": \"no duh\" }">click</div> 

<div obj= '{"name":"John Johnson","street":"Oslo West 16","phone":"555 1234567"}' >click</div> 
+0

謝謝我正在考慮json aswell,althoug我寧願對象的語法。然而它似乎沒有工作。 – dbol

+0

@dbol可以請你分享一個小提琴或stacksnippet(在編輯模式下使用頂部的圖標)。 – gurvinder372

+0

這一個工程:'{「名稱」:「約翰遜」,「街道」:「奧斯陸西16」,「電話」:「555 1234567」}' – dbol