0

我想将 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>');

这不适用于对象值周围的双引号。

我所有这一切的目标是能够在同一页面上以文本形式运行和显示代码,而无需编写两次代码,因此,如果您有其他建议,那就太好了。

4

1 回答 1

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 : \"!")会弹出警报“看到:”!”。

于 2013-05-24T20:49:45.590 回答