当点击下拉列表项时,在javascript中调用相同的列表项名称功能?

时间:2017-05-23 05:44:47

标签: javascript jquery

下拉列表包含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");
}

3 个答案:

答案 0 :(得分:0)

您应该使用eval()

&#13;
&#13;
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;
&#13;
&#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>