2013-09-23 13 views
7

からのjQuery(this)を呼び出す方法を私はは、アンカータグのonclick機能

<ul> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Test</a></li> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Test fdgfdgfdgfdgfdgfdgfdgfdg fdg</a></li> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Plan</a></li> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">Test</a></li> 
     </ul> 

コードを持っており、すなわちclass="selected" Buはjqueryのを歌うタグparrentタグ李にクラス名を追加したいです。 あなたはこのような関数を使用して要素を送信する必要が

+0

「this」は機能に依存します。 – Joseph

+0

'これはウィンドウオブジェクトです。デバッグすると答えは –

答えて

18

HTML

<li><a onclick="setSelectedTestPlan(this);" href="javascript:void(0);">New Test</a></li> 

のJS

function setSelectedTestPlan(el) {  
     jQuery("#tree ul li").removeClass("selected"); 
     jQuery(el).closest('li').addClass("selected"); 
    } 

または

JS

function setSelectedTestPlan(el) { 
    jQuery(el).closest('li').addClass("selected").siblings().removeClass("selected"); 
} 
+0

になります。これは右クリックして新しいタブを開くかCtrl +クリック(コマンド+クリック)します。これを達成する他の方法はありますか? – flipper

2

...私を助けてください...

を私はこのjqueryのコード

function setSelectedTestPlan() { 
     jQuery("#tree ul li").each(function() { 
      jQuery(this).removeClass("selected"); 
     }); 

     jQuery(this).closest('li').addClass("selected"); 
    } 

を使用しかし、このラインjQuery(this).closest('li').addClass("selected");は動作しません。

HTML

onclick="setSelectedTestPlan(this);" 

JS

function setSelectedTestPlan(ele) {  
     jQuery("#tree ul li").each(function() { 
      jQuery(this).removeClass("selected"); 
     }); 

     jQuery(ele).closest('li').addClass("selected"); 
    } 
1
function setSelectedTestPlan(e) { 
    jQuery("#tree ul li").each(function() { 
     jQuery(this).removeClass("selected"); 
    }); 

    jQuery(e).closest('li').addClass("selected"); 
} 

<li><a onclick="setSelectedTestPlan(this);" href="javascript:void(0);">New Test</a></li> 

代替

<ul> 
     <li><a class="mylink" href="javascript:void(0);">New Test</a></li> 
     <li><a class="mylink" href="javascript:void(0);">New Test fdgfdgfdgfdgfdgfdgfdgfdg fdg</a></li> 
     <li><a class="mylink" href="javascript:void(0);">New Plan</a></li> 
     <li><a class="mylink" href="javascript:void(0);">Test</a></li> 
    </ul 


$(function(){ 
$(".mylink").click(function(e){ 
    $(".mylink").parents("li").removeClass("selected"); 
    $(this).parents("li").addClass("selected"); 
    e.preventDefault(); 
    }); 
}); 
2

一行:

jQuery(this).closest('li').addClass("selected").siblings().removeClass("selected"); 

しかし、あなたは 'この' を通過するように、あなたのイベントを修正する必要があります。

onclick="setSelectedTestPlan(this);" 
関連する問題