Javascript 如何为html属性应用json内容

Javascript 如何为html属性应用json内容,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正在尝试为html arrtibute内容添加json对象,但不起作用。我尝试了许多方法,但不知道如何设置。如果有人知道,请帮助解决此问题 javascript: var validatorValue='{ "picker":{ "allow": { "message": "Content loram ipsom"

我正在尝试为html arrtibute内容添加json对象,但不起作用。我尝试了许多方法,但不知道如何设置。如果有人知道,请帮助解决此问题

javascript:

   var validatorValue='{ 
            "picker":{
                    "allow":
                        {
                        "message": "Content loram ipsom"
                        },
                    "past":
                        {
                        "message": "lorem issom"
                        }  
                }
           }' ;

   var daterestrictValue="{'range': {'start': '2019-10-30','end': '2019-12-30'}}";


   var myinputValue="{'date':'tomorrow'}";

$("#mydiv").html("<div input="true" validator='+validatorValue+' date-restrict='+daterestrictValue+'  my-input='+myinputValue+'></div>");
var validatorValue='{
“挑选者”:{
“允许”:
{
“消息”:“内容罗兰ipsom”
},
“过去”:
{
“消息”:“lorem issom”
}  
}
}' ;
var daterestrictValue=“{'range':{'start':'2019-10-30','end':'2019-12-30'}”;
var myinputValue=“{'date':'moother'}”;
$(“#mydiv”).html(“”);

代码的主要问题(除了字符串文本中的换行符外)在于生成的HTML字符串中的引号不匹配。但是,即使纠正了这些错误,在属性中放置序列化JSON也会有问题,因为它也包含双引号,这会破坏HTML语法

还请注意,您正在创建的HTML中创建非标准属性,这可能会导致UI和JS出现意外问题

另一种方法是将值作为对象(而不是字符串)使用。可以使用jQuery使用这些对象设置元素的
数据
,如下所示:

var validatorValue={“picker”:{“allow”:{“message”:“Content loram ipsom”},过去:{“message”:“lorem issom”}
var daterestrictValue={'range':{'start':'2019-10-30','end':'2019-12-30'}
var myinputValue={“日期”:“明天”};
var$newDiv=$('Click me').appendTo('#mydiv');
$newDiv.data({
“验证器”:验证器值,
“日期限制”:日期限制值,
“我的输入”:myinputValue
});
//用于测试
$('#mydiv div')。在('click',function()上{
log($(this.data('validator'));
console.log($(this.data('date-restrict'));
console.log($(this.data('my-input'));
});

此代码将对象保存在html元素中

祝你好运

var validatorValue="{ 'picker':{'allow':{'message': 'Content loram ipsom'},'past':{'message': 'lorem issom'}}}";
var daterestrictValue="{'range': {'start': '2019-10-30','end': '2019-12-30'}}";
var myinputValue="{'date':'tomorrow'}";
    $("#mydiv").html(`
    <div input='true' validator="${validatorValue}" date-restrict="${daterestrictValue}" my-input="${myinputValue}">ggg</div>`);
var validatorValue=“{'picker':{'allow':{'message':'Content loram ipsom'},'pass':{'message':'lorem issom'}}”;
var daterestrictValue=“{'range':{'start':'2019-10-30','end':'2019-12-30'}”;
var myinputValue=“{'date':'moother'}”;
$(“#mydiv”).html(`
ggg`);

您使用的引号不正确。将最后一行更改为
$(“#mydiv”).html(`div input=“true”validator='${validatorValue}'日期限制='${daterestrictValue}'我的输入='${myinputValue}'>`)尝试使用模板包装字符串-strings()已尝试但不起作用..获取错误:JSONY中出现意外的令牌$有什么解决方案吗?这是es6I中的新功能我正在使用jquery 1.7.1“不起作用”不是一个有用的诊断。您可以在上面的示例中看到这一点,因此您的版本中肯定存在其他导致问题的潜在差异。还有其他方法吗?实际上,我的代码看起来像$('Click me')。appendTo('mydiv');datepicker是全局组件。如果我使用您的想法,即josn数据不在执行,则没有
元素。您使用的是非标准doctype吗?或者你是说我已经创建了一个组件。这是全局组件…我正在为它设置json数据