2017-05-23 1 views
0

Dropdown-Liste enthalten 3 Artikel, nämlich Emp-Name, prod Info, Verkaufsstatus, wenn ich Listenelement anklickte, sollte es Funktion gleiche Listenelementname aufrufen. Hier mache ich, wenn ich auf Listenelement geklickt habe, den Objektnamenbereich entfernt habe und und zum Aufruf aufgerufen habe, aber es nicht aufruft. wie kann ich. Unten ist ich versuchte Code.beim Klicken auf Dropdown-Liste Element rufen Sie eine gleiche Listenelement Name Funktion in Javascript?

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

Aufruf wie dieses Fenster [y](); – JYoThI

+0

ich habe versucht, aber es ruft nicht an –

Antwort

0

Sie sollten die eval() verwenden.

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"); 
 
}
<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>

0

können Sie diese versuchen

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"); 
} 
+0

Dhaval, hast du die vorherige Antwort überprüft, bevor du deine gemacht hast? Es gibt nicht viel Sinn, identische Antworten zu machen –

+0

Nein, wenn meine Antwort Ort und nach der Seite aktualisieren und ich sehe ans ist bereits gegeben –

+0

** Von Review Queue **: Darf ich Sie bitten, bitte fügen Sie einige Kontext um Ihre Quelle- Code. Nur-Code-Antworten sind schwer zu verstehen. Es wird sowohl dem Fragesteller als auch zukünftigen Lesern helfen, wenn Sie in Ihrem Beitrag weitere Informationen hinzufügen können. – RBT

0

Warum Sie durch die Verarbeitung von String zwischen HTML-Tags auf einigen dynamischen Art und Weise Funktion des Aufrufs abhängen sollte. Der Text zwischen den HTML-Tags dient nur zum Lesen. Sie sollten es nicht verarbeiten, denn wenn Sie den Textwert ändern, wirkt sich das auf Ihre Codierung aus und der Code muss entsprechend dem Text geändert werden. und wenn die vordefinierten Funktionen bereits bekannt sind, können Sie dies wie folgt tun.

<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> 
Verwandte Themen