2011-09-01 30 views
2

ユーザーが次のセルをクリックしたときにテーブル内のセルの値を取得する方法は? jqueryの中jquery内の子供の値を取得

<table id="registrarsTable"> 

<c:forEach items="${requestScope.AllUsers}" var="user" varStatus="loop"> 
    <tr class="userRow"> 
     <td class="numberWidth">${loop.index + 1}</td> 
     <td class="nameWidth user" id="${user.userno}">${user.fullName}</td> 
     <td> 

     <button name="DeactivateBtn" id="deactivate" class="deactivate btn">deactivate</button> 

     </td> 
    </tr> 
</c:forEach> 

私は、ユーザーが非アクティブ化]ボタンをクリックしたときに二tdから属性「ID」の値を取得したいです。

私はこの

var userNo = $('td.user', $(this).parents(".userRow")).attr('id'); 

この

 var userNo = $($(this).parent(".userRow") > "td").attr("id"); 

と誰も働かないようにようにします! (thisある)ボタンから

答えて

1
$('#deactivate').click(function() { 
    var userNo = $(this).parent().prevAll('td.user').attr('id'); 
}); 

、親(非アクティブ化ボタンを含む<td>)まで横断します。次に、クラスuserを持つ前の兄弟<td>に、id属性を取得します。

あなたが実際に頼らないようにしたい場合は代わりに、非アクティブ化ボタンがユーザー名の<td><td>であり、あなたがこれを行うことができます:

$('#deactivate').click(function() { 
    var userNo = $(this).closest('tr').find('td.user').attr('id'); 
}); 

を、その後closestで親<tr>を見つけて、 <td class="user">findです。

の作業例:http://jsfiddle.net/FishBasketGordo/Bk6ML/

APIリファレンス:

+0

アラートuserNoの値が未定義の場合、最初の方法では機能しません。また、2番目の関数でクローゼットを使用すると、関数が存在しません! – palAlaa

+0

2番目の例は、私が修正したタイプミスを持っていました。実際の例を参照してください。 – FishBasketGordo

関連する問題