从jquery $ .post()数据中获取html元素的值

时间:2011-10-24 11:48:55

标签: jquery html .post

我有一些页面可以通过jquery $ .post访问,如下所示:

$.post(url, {name: name}, function(data)
{
    var htmldata = $(data);
    if($('#ok', htmldata).val() == "1")
    {
        //some things carried out
    }
});

$('#ok', htmldata).val()总是undefined所以问题出在哪里?

更新: htmldata = <input id=\"ok\" type=\"hidden\" value=\"1\" />以及另外2-3个隐藏输入。

4 个答案:

答案 0 :(得分:1)

实际上不需要在以下行中使用$

var htmldata = $(data);

直接使用var htmldata = data;并尝试检查htmldata中是否有任何ata。如果是,则继续进行。

答案 1 :(得分:1)

$('#ok', htmldata)将查找ID为htmldata的{​​{1}}的所有后代

您需要将ok更改为$('#ok', htmldata)

答案 2 :(得分:0)

因为htmldata中的数据未在DOM中初始化,所以如果您希望该工作将此注入到隐藏div中的DOM中,例如。

但更好的方法是从AJAX返回JSON,然后检查状态非常容易。

当然,您始终可以使用正则表达式进行解析:)

第一种情况的示例(未测试) - 将其置于回调函数中:

$("#ajaxData").remove();
$('body').append('<div id="ajaxData">' + htmldata + '</div>');
if(parseInt($('#ok').val()) == "1")
{

}

答案 3 :(得分:0)

您可以使用find()

$.post(url, {name: name}, function(data)
{
    var htmldata = $(data);
    if(htmldata.find('#ok').val() == "1")
    {
        //some things carried out
    }
});