2016-08-12 12 views
0

私はスパンの値を見つけようとしています。私がアンカーをクリックすると、それは私にスパンの中の価値を与えるはずです。それはdynamic.Hereここでは、HTML兄弟の子供の値を見つける

<div class="member-info"> 
    <h2>Total Votes : <span>1</span></h2> 
    <a href="3" class="btn-system btn-medium border-btn vote_btn" data-target="#danger" data-toggle="modal">Vote</a> 
</div> 

は私が上でクリックしたときにspan要素に値が利用可能に取得したいのに対し、このコードは私に未定義の値を与えているjQueryのコード

$('.vote_btn').on('click',function(){ 
     var id = $(this).attr('href'); 
     var method_url = "<?php echo base_url(); ?>Home/vote/"+ id; 

     $.ajax 
     ({ 
      type: "POST", 
      url : method_url, 
      success:function(data) 
      { 

       if(data=='1') 
       { 
        var votes = $(this).siblings('h2').children('span').text() ; alert(votes); 
        $("#vote_response").html('Thanks you and come back tomorrow to vote again.'); 
       }else if(data=='0') 
       { 
        var votes = $(this).siblings('h2').children('span').text() ; alert(votes); 
        $("#vote_response").html('Sorry you have already voted today, please come back tomorrow to vote again.'); 
       } 

       $('#response_modal').modal('show') 
      }  
     }); 
    }); 

ですでなければなりませんアンカー投票。助けてください

+0

あなたのajax呼び出しがトリガされたとき、ドキュメントの準備ができているか、何らかのクリックイベントですか? –

+0

そのクリックイベントで – Umerm

答えて

2

を持っていないので、あなたは成功に$(this)をアクセスすることはできません関数を直接代入して成功関数に代入してください。

$('.vote_btn').on('click',function(){ 
    var id = $(this).attr('href'); 
    var method_url = "<?php echo base_url(); ?>Home/vote/"+ id; 
    var $current_element = $(this); 

    $.ajax 
    ({ 
     type: "POST", 
     url : method_url, 
     success:function(data) 
     { 

      if(data=='1') 
      { 
       var votes = $current_element.siblings('h2').children('span').text() ; alert(votes); 
       $("#vote_response").html('Thanks you and come back tomorrow to vote again.'); 
      }else if(data=='0') 
      { 
       var votes = $current_element.siblings('h2').children('span').text() ; alert(votes); 
       $("#vote_response").html('Sorry you have already voted today, please come back tomorrow to vote again.'); 
      } 

      $('#response_modal').modal('show') 
     }  
    }); 
}); 
+1

ありがとうございました。 – Umerm

1

.val()の代わりに.text()を使用してください。 .val()関数は入力の値を見つけるために使用され、span要素は入力ではありません。 .text()関数は、範囲内のテキストを検索します。

$('.vote_btn').on('click',function(){ 
 
    var votes = $(this).siblings('h2').children('span').text() ; alert(votes); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="member-info"> 
 
    <h2>Total Votes : <span>1</span></h2> 
 
    <a href="3" class="btn-system btn-medium border-btn vote_btn" data-target="#danger" data-toggle="modal">Vote</a> 
 
</div>

+0

動作していません。その空の警告を与える。 – Umerm

+0

利用可能なコードで私の答えを投稿したので、プログラムを引き起こしている可能性のあることがありますか?私の答えの例を見てください。 – Wowsk

+0

あなたのプログラムにjQueryがありますか? – Wowsk

0

(.valの代わりに使用するの.text()または.html())スパンは、value属性に

+0

動作しません。それは未定義または空のどちらかを与えます。 – Umerm

関連する問題