Ajax GET传递不正确的数据

时间:2014-12-11 21:20:48

标签: php jquery ajax

我有这个HTML / PHP代码:

$notes.='<div class="note '.$color.'" ';

    if($row["xyz"] == '') {
        $notes.='style="left:45%; top:10%; z-index:0;"><h3 align="center">New Note</h3>';
    } else {
        $notes.='style="left:'.$left.'px;top:'.$top.'px;z-index:'.$zindex.'">';
    }

    $notes.=htmlspecialchars($row['text']).'
    <a class="closeMessage">X</a><div class="addedby">'.htmlspecialchars($row['addedby']).'</div>
    <span class="data">'.$row['sequence'].'</span>
    </div>';

有多个包含数据库中的不同数据

我想使用ajax使用GET将数据发送到PHP页面,我目前有这个:

$('.closeMessage').live('click',function(){
        //alert("close");
        alert($('span.data').html());
        $.get('/includes/sticky_notes/closeMessage.php',{
            sequence : $('span.data').html()
        });
        alert("close");
    });

但每次都传递错误的序列。它传递不同行的序列号

1 个答案:

答案 0 :(得分:1)

由于您的HTML代码包含多个带有'data'类的元素,因此当您调用$('span.data').html()时,您将始终获得数据类的第一个跨度的内部html。

您可以traverse使用dom树并使用siblings函数之类的内容。

$(document).ready( function(){

    $('.closeMessage').on('click',function(){
      //alert("close");
      this_data = $(this).siblings('.data').html();
      alert(this_data);

      $.get('/includes/sticky_notes/closeMessage.php',{
        sequence : this_data
      });

      alert("close");
    });
});

在这个例子中,我们将数据存储在变量this_data = $(this).siblings('.data').html()中,因此我们引用被单击的元素 - $(this),然后在树中向下,直到具有类{{的下一个元素1}}。

最后一件事 - 考虑使用data代替$('.closeMessage').on,因为它已被弃用 - http://api.jquery.com/live/