下拉列表包含3项,即emp名称,prod信息,销售状态,当我点击列表项时,它应该调用函数相同的列表项名称。这里我正在做我点击列表项,项目名称空间删除和调用功能但它没有调用。我能怎么做。贝娄是我试过的代码。
html
----
<ul>
<li class="item">emp name</li>
<li class="item">prod info</li>
<li class="item">sale status</li>
</ul>
javascript
----------
jQuery("ul .item").click(function(){
var x = $(this).text();
var y = x.replace(/\s+/g, '');
y+();
});
function empname(){
console.log("emp");
}
function prodinfo(){
console.log("prodinfo");
}
function salestatus(){
console.log("salesstaus");
}
答案 0 :(得分:0)
您应该使用eval()
。
jQuery("ul .item").click(function() {
var x = $(this).text();
var y = x.replace(/\s+/g, '') +"()";
eval(y)
});
function empname() {
console.log("emp");
}
function prodinfo() {
console.log("prodinfo");
}
function salestatus() {
console.log("salesstaus");
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="item">emp name</li>
<li class="item">prod info</li>
<li class="item">sale status</li>
</ul>
&#13;
答案 1 :(得分:0)
你可以试试这个
jQuery("ul .item").click(function(){
var x = $(this).text();
var y = x.replace(/\s+/g, '');
//console.log(y);
eval(y +'()');
});
function empname(){
console.log("emp");
}
function prodinfo(){
console.log("prodinfo");
}
function salestatus(){
console.log("salestatus");
}
答案 2 :(得分:0)
为什么要通过处理html标记之间的字符串来依赖于调用函数的动态方式。 html标签之间使用的文本仅供阅读。你不应该处理它,因为如果你改变文本值以某种方式它会影响你的编码,代码需要根据文本进行更改。如果预定义的功能已经知道,您可以通过以下方式完成。
<script>
function empname(){
alert("emp");
}
function prodinfo(){
alert("prodinfo");
}
function salestatus(){
alert("salesstaus");
}
</script>
<ul>
<li class="item" onclick="empname()">emp name</li>
<li class="item" onclick="prodinfo()">prod info</li>
<li class="item" onclick="salestatus()">sale status</li>
</ul>