2016-04-01 13 views
-1

におけるAJAXポストの答え私はこのエラーを持っている:私は作成しようとしています何キャッチされない例外TypeError:プロパティを読み取ることができません未定義の「HTML」 - のみspesific divの

Uncaught TypeError: Cannot read property 'html' of undefined

が私の上の各ビデオのための投票システムでありますデータベースからのページ。私はAJAXでそれを作ることに成功しました。唯一の問題は、クラスごとにdivに投稿されるので、正しいdivクラス 'this'の答えを出力できないことです。

私は、ユーザーが投票ボタンをクリックした親部門を特定し、それ自身の子ボットの他を変更するための実用的なソリューションが必要です。

助けてください。ここに私のjQueryコードです。

ここ
$(function() { 

    $(".vote").click(function() { 

     var id = $(this).attr("id"); 
     var name = $(this).attr("name"); 
     var dataString = 'id='+ id ; 
     var acdc = $('#ab').attr('class'); 
     var potato = 'potato'; 
     var parent = $(this); 
     if(name=='up') 
     { 
      $.ajax({ 
       type: "POST", 
       url: "up_vote.php", 
       data: dataString, 
       cache: false, 
       success: function(html) { acdc.html(html); 
             }}); 
     } 
     else 
     { 
      $(this).fadeIn(200).html('<img src="img/icon-down.png" align="absmiddle"  style="height: 10px;width:10px;">'); 
      $.ajax({ 
       type: "POST", 
       url: "down_vote.php", 
       data: dataString, 
       cache: false, 
       success: function(html){ 
        parent.parent().find('.this').html(html); 
       }}); 
     } 
     return false; 
    }); 

}); 

は、htmlのビデオポストにとdivのclass'this'私のAJAXの答えが掲載される場所である - しかし、現在1で - PHPスクリプトがspesific IDでのみビデオに一票を追加すると、すべてではありません!

<div class='botto'> 
    <div class='icon-wrap'> 
    <form action="blossom.php" method="post"><?php $id = $row["idv"]; ?> 
    <input type="hidden" id="id" value="<?php echo $row['idv']; ?>" /> 
    <div cass='homesick'> 
    <button type='submit'name='up' style="background-color:transparent; border-color:transparent;outline: none; " class='icon vote' name="up"><img src='img/thumbsup.png' alt='up' name='up' class='icon vote icon-up' id="<?php echo $row['idv']; ?>" ></button> 
     <span class='number-vote this'> 
     <?php 

     echo $row['votev']; 

     ?></span> 
    <button type='submit' name='down' style="background-color:transparent; border-color:transparent;outline: none; " class="vote" name="down"><img src='img/icon-down.png' alt='down' class='icon icon-down vote' id="<?php echo $row['idv']; ?>"></button> 
    </div> 
    </form> 
    </div> 
    </div> 
+0

あなたは[ここに掲載これと以前の質問の違いは、何ですか](http://stackoverflow.com/questions/36358422/pass-response-of-ajax-only-to-current-div-among-an-array)? –

+0

あなたのHTMLには 'id = 'ab''はありません、' $( "#ab")とは何ですか?attr(' class ') '返されるはずですか? – Barmar

+0

video.php:576 Uncaught TypeError:acdc.htmlはここにある関数ではありません - 私は>>>> '> <?php echo $ row [' votev ']; ?>と>>> var acdc = $( '。number-vote')。attr( 'id'); –

答えて

2

var acdc = $('#ab').attr('class')の試みは、この場合にはundefinedに解決される属性class、の文字列値を取得します。

あなたはjQueryのhtmlメソッドを使用したい場合は、次のような、DOMノード上でそれを行う必要があります。

var acdcElement = $('#ab'); 
var html = acdcElement.html(); 
+0

同じここでエラー - $(」投票。 "))(関数(クリック { するvar ID = $(この).ATTR(" ID "); VAR名= $(この).ATTR("。 var acdcElement = $( '#ab'); var html = '(id'); var acdcElement = $( '#ab'); acdcElement.html(); するvarポテト= 'ポテト'; するvar親= $(この); 場合(名前== 'アップ') { $アヤックス({ タイプ: "POST"、 URL : "up_vote.php"、 data:dataString、 cache:false、 成功:function(html){acdc.html(html); }}); } else –

関連する問題