2016-09-19 9 views
0

Ich schrieb eine Funktion wie einen Benutzer vom Server zu bekommen, und ich habe es. Jetzt erstelle ich einen Link für jeden Benutzer mit a href innerhalb java script. Das funktioniert gut. Jetzt möchte ich eine Funktion auszuführen, wenn ich Benutzer auf den Link klicken (mit dem entsprechenden Benutzernamen)Wie bekomme ich einen Anker Link Text in einem Javascript und Aufruf mit Argumenten

var User_id = document.querySelector(".sidebar-name"); 

//getting array of user 

function list(user){ 

    User_id.innerHTML = ""; 

    for(i = 0; i < user.length; i++){ 

     User_id.innerHTML+= "<a href='#' onclick = 'javascript:calluser(this);' style='text-decoration:none'>" + user[i] + "</a>" + "<br />"; 

    } 
} 



function calluser(this){ 

    alert(user); 
// i need to print the corresponding username or anchor text . 
// how can i solve this ? 

} 

ich mit id innen a href versucht. Aber das ist nicht einzigartig, also wird es nicht funktionieren. Wie kann ich das lösen?

+0

Ist 'alert (this.innerHTML)' Arbeit? – Phylogenesis

+0

'href =" # "' ist ein Link zum Anfang der Seite. Verwenden Sie keine Verknüpfung, wenn Sie eine Schaltfläche möchten. Benutze einen Knopf. 'innerHTML' ist ein Albtraum. Verwenden Sie stattdessen DOM. 'createElement',' appendChild', 'addEventListener', etc. – Quentin

+0

Auch, machen Sie die ID in der for-Schleife einzigartig, indem Sie die Variable i an Ihre ID angehängt verwenden. Z.B. ... id = 'myid "+ i +"' ... – Verthosa

Antwort

1

"Funktion calluser (this)" Ist ein Syntaxfehler.

Umbenennen "this" mit etwas anderem wie "a":

var User_id = document.querySelector(".sidebar-name"); 

function list(user){ 
    User_id.innerHTML = ""; 
    for(var i=0; i<user.length; i++){ 
     User_id.innerHTML+= "<a href='jacascript:void();' onclick='javascript:calluser(this);' style='text-decoration:none'>" + user[i] + "</a>" + "<br />"; 
    } 
} 

function calluser(a){ 
    alert(a.text); 
} 
+0

danke .. funktioniert gut .. Aber was? passiert, wenn ich 'onclick = 'calluser (" + username [i] + ")' '? – user2986042

+0

Ich brauche mehr Informationen was ist in der "Benutzername" Variable? Wenn Sie "this" ("calluser (this)") verwenden, übergeben Sie ein OBJECT (den Anker) an die Funktion "calluser". Deshalb verwenden Sie den sintax "alert (a.text)"; Wenn Sie den Text nicht direkt übergeben möchten: "calluser (user [i])", übergeben Sie einen STRING an die Funktion. deshalb sollten Sie "alert (a)" verwenden – Federico

Verwandte Themen