2016-12-28 13 views
2

内部に最も近いTRを取得します。私はこのコードを持っているのJS機能のjs

function keyUpUpdate() 
{ 
    var data = document.activeElement.textContent; 
    var domId = document.activeElement.id; 
    var userId = $(this).closest('tr').find('[type="hidden"]:first').val(); 

    console.log(userId); 
} 

userIdは、この関数内で動作していない。しかし、今、私は機能としてそれを作り、私はこのようにしようとした任意のページのためにそれを使用したいです。 どうすれば最も近いtrを取得し、最初の入力タイプの隠し値を関数内のアクティブな要素から得ることができますか?

+0

コンソールで何かエラーが表示される –

+0

コンテキスト(このオブジェクト)に問題がある可能性があるため、「keyUpUpdate()」をどのように呼び出すか表示してください – Tobia

+0

これはコンソール内のエラーです –

答えて

3

thisは、あなたの関数の内部には、コンテキストあなたがこのオブジェクトに基づいてuserIdを取得し、その後、パラメータとしてkeyUpUpdate()に現在のオブジェクトを送信する必要がありません:

$(".contenteditable").keyup(function(){ 
    keyUpUpdate($(this)); 

    //Other code 
}) 

function keyUpUpdate(_this) 
{ 
    var data = document.activeElement.textContent; 
    var domId = document.activeElement.id; 
    var userId = $(_this).closest('tr').find('[type="hidden"]:first').val(); 
    console.log(userId); 
} 

それともkeyupであなたを実行するだけでこの機能をしている場合

$(".contenteditable").keyup(keyUpUpdate); 

function keyUpUpdate() 
{ 
    var data = document.activeElement.textContent; 
    var domId = document.activeElement.id; 
    var userId = $(this).closest('tr').find('[type="hidden"]:first').val(); 

    console.log(userId); 
} 

は、この情報がお役に立てば幸い:thisオブジェクトが動的に渡されます直接それを呼び出すことができます。

関連する問題