我想将javascript代码存储在对象中,然后在用户单击按钮时运行部分代码。到目前为止,我有这个:
var exampleCode = {
test: "$('body').css('background: pink');"
}
$(document).ready(function(){
console.log(exampleCode.test);
exampleCode.test;
});
我有两个问题,第一个问题是,如何让代码实际运行?
第二个是,如果我想在我的javascript中使用一些html,我该怎么办,比如下面一行代码:
$('body').append('<div class="whatever"></div>');
这对于对象值周围的双引号不会很好。
我的目标是能够在同一页面上运行和显示代码作为文本,而无需编写两次代码,因此如果您有其他建议,那就太棒了。
答案 0 :(得分:6)
你无法实际执行“代码串”,因此运行代码的唯一方法是执行此操作:
var exampleCode = {
test: function(){$('body').css('background', 'pink');}
}
$(document).ready(function(){
console.log(exampleCode.test); //No "()" for the function
exampleCode.test();
});
您可以在对象中保存一个函数,然后调用它。
如果要附加函数的文本,可以执行以下操作:
$('body').append(String(exampleCode.test))
这将附加函数,但是没有格式化
但是,您可以使用javascript函数.replace()
进行一些格式化。
//Really weak example, can be optimised
var txtCode = String(exampleCode.test)
txtCode = txtCode.replace(';', ';<br/>')
txtCode = txtCode.replace('{', '{<br/>')
txtCode = txtCode.replace('}', '}<br/>')
var code = $('<code/>').html(txtCode)
$('body').append(code)
其他信息:您可以使用“\”转义字符。
执行alert('How\'s it?')
会弹出警告“它是怎么回事?”,alert("See that : \"!")
会弹出警告“看到:”!“。