我怎样才能做出类似的事情:
var string1 = "functionNameBeginning";
var string2 = "functionNameEnding";
element.innerHTML = string1 + string2 //string1 + string2 is name of function to execute
UPD:我想要的是执行名为string1string2()
的函数,用户Spencer Wieczorek在他对eval()
函数的评论中理解我。我真的找到了解决这个问题的更好主意。因为这是我想用来处理Wordpress网站上select input
的价值的方式:
<select name="formula" class="left-input" id="formula">
<option value="mifflin" selected>Mifflin-St Jeor</option>
<option value="harris">Harris–Benedict</option>
<option value="katch">Katch-McArdle</option>
</select>
我在WP插件中编写了这个函数:
if ($_POST['formula'] == 'mifflin') {
return mifflinFormula();
} else if ($_POST['formula'] == 'harris') {
return harrisFormula();
} else {
return katchFormula($_POST['fat']);
}
答案 0 :(得分:2)
如果在
function
范围内声明了global(window)
,则可以在使用key
时使用window
表示bracket
variable
key
function functionNameBeginning() { return 'Hi...'; } function functionNameEnding() { return 'Bye...'; } var string1 = "functionNameBeginning"; var string2 = "functionNameEnding"; var element = document.body; element.innerHTML = window[string1]() + window[string2]();
}function functionNameBeginning() { return 'Hi'; } function functionNameEnding() { return 'Bye'; } function HiBye() { return 'Hi...Bye executed!'; } var string1 = "functionNameBeginning"; var string2 = "functionNameEnding"; var element = document.body; element.innerHTML = window[window[string1]() + window[string2]()]();
var topicos = [];
jQuery('div').each(function(){
var data = {};
var jThis = jQuery(this);
data.topic = jThis.find('strong').text();
data.subtopics = [];
jThis.next('ul').find('li').each(function(){
var jThis = jQuery(this);
data.subtopics.push(jThis.text());
});
topicos.push(data);
});
console.log(topicos);
&#13;
修改强>
如果你有一个函数名,它是在连接前两个函数返回的值之后形成的,你可以这样做。但我建议你使用你自己的对象,将属性值作为函数。
<div class="js-topic-data">
<div>
<strong class="js-topic">Java Basics </strong>
</div>
<ul>
<li class="js-sub-topic">
Define the scope of variables </li>
<li>
</ul>
</div>
&#13;
答案 1 :(得分:0)
您是在尝试执行一项任意函数,还是您可以控制它是如何定义的?
如果它是任意的,你可能会走上危险的道路,因为你需要使用{{1}}来执行它,这总是有风险的。
如果它在你的控制之下,试试这个:
{{1}}