从parent()。parent()位置的post函数中获取数据

时间:2011-04-22 17:10:28

标签: jquery ajax post

如何使用'

获取jquery值
$.ajax({
    type: "POST",
    url: "ef_StdInfo_todb.php",
    data: formVals(),
    success: function(data, msg){
    $(this).parent().parent().html(data);
    $(this).parent().parent().('#status_Div").text(msg);
   }

”  什么都没发生。但如果我把直接div名称$(“anydiv”)而不是父,父行。然后出现值。 出了什么问题

3 个答案:

答案 0 :(得分:2)

$(this).parent().parent().('#status_Div").text(msg);

此行不正确。在第二次调用find()后,您可能需要parent()。您还在同一个字符串中使用'"作为分隔符。那不行。选择其中一个并保持一致。

$(this).parent().parent().find('#status_Div').text(msg);

此外,您可以使用带有选择器字符串的closest()来访问父节点,直到一个与选择器匹配。避免多次调用parent()会很有用。

答案 1 :(得分:2)

Alex指出的选择器是正确的,但不知道你如何调用$.ajax()我将做出一些假设。

$.ajax({
    type: "POST",
    url: "ef_StdInfo_todb.php",
    data: formVals(),
    success: function(data, msg) {
      $(this).parent().parent().find('#status_Div').text(msg);
   }
});

this将引用您的xhr对象,而不是您点击或触发$.ajax的元素,这可以解释您的成功通话失败的原因。

如果通过.click()调用,只需创建一个变量来存储单击的元素。

$(":button").click(function() {
    var $that = $(this);
    $.ajax({
        type: "POST",
        url: "ef_StdInfo_todb.php",
        data: formVals(),
        success: function(data, msg) {
          $that.parent().parent().html(data);
          $('#status_Div').text(msg);
       }
    });
});

旁注,因为您通过id查询,只需致电$('#status_Div').text(msg)而无需担心.parent()

<强> Example on jsfiddle

答案 2 :(得分:1)

亚历克斯是对的。无论如何,$(this).parent().parent().html(data);将替换parent()。parent()中存在的任何内容,因此只有在#status_Div中包含data时才能找到{{1}}。我是对的吗?