2011-02-04 7 views
0

ボタンをクリックしようとしましたが、クリックするとテーブルから行が削除されます。問題は、 'a href'ハイパーリンクにラップされているため、 'this'を使用して関数のインスタンスを渡すことができないことです。ラップ時にJavaScript関数に行を渡すにはどうすればよいですか?

<tr> 
    <td> 
     <a href="#" 
      onclick="return removeContact(\''.$row['ContactMail'].'\', this);"> 
    </td> 
</tr> 

これを取得する方法についてのアイデアはありますか?

+0

、 'removeContact'のコードを追加してください。私がすぐに見る1つのエラーは、あなたが 'a'タグを閉じておらず、その中に内容を持っていないということです。 – philgiese

答えて

3

this.parentNodeを使用してTDを取得するか、this.parentNode.parentNodeを使用して行を取得します。

+0

そこから、tr idの ' rvk

+0

要素を操作するためにidを必要としない場合は、要素/オブジェクトが必要です。 'this.parentNode.parentNode.style.visibility = false'です。 – SpliFF

0

それとも、TRタグの中にいくつかのイドを入れて、このようにラップにjQueryを使用して、それを呼び出すことができます。これを行うには

$("#TrNNN").remove() 
0

良い方法は、jQueryを使っている:あなたの機能については

$('a').click(function() { 
    this.parentNode.parentNode.remove() 
}); 
+0

リンクをクリックすると、その親テーブルの行が削除されます。 –

+0

これが私がjQueryを嫌う理由です。それはすべてに対する答えではありません。あなたは、一行の問題を解決するために大きな依存関係を推薦しています。複雑なタスクのためにjQueryを使うことからJavascriptを最初に学んでください。 – SpliFF

+0

私はそれがすべてに対する答えだと言っているわけではありません。 彼がやっていることを見て、レコードを削除する関数を作成すると、彼は基本的にはすでに存在するJQuery関数を再現しています。このソリューションが彼のために機能する理由は、レコードを扱っていないことが多いからです。通常倍数。これにより、すべてのリンクを押すか、そのセレクタにクラスを取得して、自分が持っているものに磨きをかけることができます。一般的にJQueryを使用する場合、私はJavascriptでかなりうまくいきます。私はすでに存在する機能を再現することは時間の無駄だと考えています。 –

関連する問題