我有一些页面可以通过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个隐藏输入。
答案 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
}
});