Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将html属性转换为javascript对象_Javascript_Jquery_Html - Fatal编程技术网

将html属性转换为javascript对象

将html属性转换为javascript对象,javascript,jquery,html,Javascript,Jquery,Html,这可以毫无问题地工作,并向键/值发出警报 $("div").click(function () { var obj = { flammable: 'inflammable', duh: 'no duh' }; $.each(obj, function (key, value) { alert(key + ": " + value); }); }); $(“div”)。单击(函数(){ var obj=$(this.attr

这可以毫无问题地工作,并向键/值发出警报

$("div").click(function () {                
    var obj = { flammable: 'inflammable', duh: 'no duh' };
    $.each(obj, function (key, value) {
        alert(key + ": " + value);
    });
});
$(“div”)。单击(函数(){
var obj=$(this.attr(“obj”);
$。每个(对象、功能(键、值){
警报(键+”:“+值);
});
});
点击
但是,这不起作用?

更改此行

$("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>

此外,您可能希望在对象内部使用转义双引号而不是单引号,请将其设置为

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

点击
更改此行

$("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>

此外,您可能希望在对象内部使用转义双引号而不是单引号,请将其设置为

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

点击

谢谢,我也在考虑json,尽管我更喜欢对象语法。但是它似乎不起作用。@dbol您可以共享一个提琴或堆栈代码段(在编辑模式下使用顶部的图标)。这个代码有效:“{”name:“John Johnson”,“street:“Oslo West 16”,“phone:“555 1234567”}”@dbol不确定它为什么不起作用。但是我已经更新了我的答案,也包括了你的工作解决方案。谢谢,我也在考虑json,尽管我更喜欢对象语法。但是它似乎不起作用。@dbol您可以共享一个提琴或堆栈代码段(在编辑模式下使用顶部的图标)。这个代码有效:“{”name:“John Johnson”,“street:“Oslo West 16”,“phone:“555 1234567”}”@dbol不确定它为什么不起作用。但我已经更新了我的答案,也包括了你的工作解决方案。
<div obj= '{"name":"John Johnson","street":"Oslo West 16","phone":"555 1234567"}' >click</div>