1

以下のようなリストがあります

<tr>
<td>val1</td>
<td>val2</td>
<td>val3</td>
<td><span class="span_view">1</span><a class="view_class">View</a></td>
</tr>
<tr>
<td>value1</td>
<td>value2</td>
<td>value3</td>
<td><span class="span_view">2</span><a class="view_class">View</a></td>
</tr>

ビュー リンクをクリックすると、関連付けられたスパンの値が出力されます。たとえば、最初のビューでは 1 になり、2 番目のビューでは 2 になります。次のコードを書きましたが、値が出力されません。

$('.view_class').live('click',function(){
   var parentDiv = $(this).closest('span');
   alert(parentDiv);
   var curprice=parentDiv.find('span[id=span_view]').val();
   alert(curprice);
 });

表示さ[object Object]れていundefinedます。どこに問題があるのか​​教えてください。前もって感謝します。

4

2 に答える 2

2

交換:

$('.view_class').live('click',function(){
   var parentDiv = $(this).closest('span');
   alert(parentDiv);
   var curprice=parentDiv.find('span[id=span_view]').val();
   alert(curprice);
 }); 

の上:

$('.view_class').on('click',function(){
   var curprice=$(this).closest('span.span_view').html();
   alert(curprice);
 });
于 2013-08-11T07:56:56.987 に答える
0

試す:

$('.view_class').on('click',function(){
   var parentDiv = $(this).parent();
   var curprice = parentDiv.find('.span_view').html();
   alert(curprice);
 });

親をコンテキストとして使用して、より保守しやすいコードを作成します。スパンを並べ替える必要がある場合でも、コードは機能します。

または、委任されたイベントを使用して 1 つのイベント ハンドラーのみをアタッチし、ajax を使用してリストを動的にロードする場合にも機能します。

$(document).on('click','.view_class',function(){
       var parentDiv = $(this).parent();
       var curprice = parentDiv.find('.span_view').html();
       alert(curprice);
     });
于 2013-08-11T07:59:40.370 に答える