2017-10-25 13 views
0

私はforループを経てHTMLページにテーブルを作成し、特定の関数を呼び出してそのユーザーの特定の値を更新するjavascriptを持っています。JavaScript - ループボタンonclickの場合

function getUsers() { 
    //get all users as "parsedJSON" array 
    for (var i=0; i<countrows; i++) { 
    row.insertCell(0).innerHTML = parsedJSON[i].samaccountname; 
    row.insertCell(1).innerHTML = parsedJSON[i].givenname; 
    row.insertCell(2).innerHTML = parsedJSON[i].surname; 
    var userName = parsedJSON[i].samaccountname; 
    row.insertCell(3).innerHTML = "<button id='userName' onclick = 'updateUser(this.id)'> ActionUser</button>"; 
    } 
} 

function updateUser(userName) { 
    //Function with about 30 lines to update user 
} 

は今、私の質問は:どのように私は知ることができ、特定のユーザーのボタンがクリックされたとどのように私はupdateUser関数にその名を渡すことができていますか?事前に

おかげ

+0

'samaccountname'はユーザーを更新する' userName'と同じですか? –

+0

ご提供いただいた情報が少なすぎます。少なくともいくつかのマークアップと配列構造は、答えを具体化するために必要です – Isac

答えて

0
ここ

var userName = parsedJSON[i].samaccountname; 
row.insertCell(3).innerHTML = "<button id='userName' onclick = 'updateUser(this.id)'> ActionUser</button>"; 

あなたのコードがなければなりませんので、あなたが実際に、userNameの値を渡すのではなく、ボタンに文字列「ユーザー名」割り当てる

row.insertCell(3).innerHTML = "<button id='" + userName + "' onclick = 'updateUser(this.id)'> ActionUser</button>"; 

クリックされたボタンを識別するために、ボタンのidupdateUser関数に渡すので、 document.getElementByIdクリックした要素を取得します。

function updateUser(userName) { 
    var clickedButton = document.getElementById('username'); 

    // This will work if this function is guaranteed to only be used by HTML element 
    var thisButton = this; 
} 
+0

ありがとう@Thum。これはまさに私が必要としていたものです。とても有難い。 :) –

関連する問題