jQuery find返回空字符串

时间:2014-08-05 15:08:50

标签: javascript jquery ajax

我正在进行ajax POST,当它成功时,我想用成功的ajax替换当前的div:

var dom;
var target;

$.ajax({
    type: "POST",
    url: "http://127.0.0.1/participants",   
    data: "action=addparticipant&userid=1",
    success: function (html) {

        dom = $.parseHTML(html);
        target = $(dom).find("#listParticipants").val();

        $('#listParticipants').html(target);                
    }
});

但似乎target是空的......

当我使用firebug调试时,dom是:

[<TextNode textContent="\n\n">, <TextNode textContent="\n\n">,
div#listParticipants, <TextNode textContent="\n \n \n">,
<TextNode textContent="\n\n">, <TextNode textContent="\n\n">]

有人可以帮我解决这个问题吗?

此致

2 个答案:

答案 0 :(得分:2)

$().val()方法用于输入字段。见http://api.jquery.com/val/

正如epascarello https://stackoverflow.com/a/25142313/227299指出的那样,您有一组节点,因此您需要$.filter,而不是$.find

如果您需要innerHTML,请使用$(dom).filter("#listParticipants").html()

答案 1 :(得分:2)

您想使用$.filter(),而不是$ .find

target = $(dom).filter("#listParticipants").html()

正如Juan指出的那样,你需要innerHTML,而不是值。

您需要使用过滤器的原因是您的控制台显示的是节点数组而不是单个DOM元素。这意味着您需要过滤该组。