2011-10-24 59 views
0

我有一些網頁,我ACCES的jQuery .post的$像這樣:

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

$('#ok', htmldata).val()是百達undefined那麼問題出在哪裏?

UPDATE:htmldata = <input id=\"ok\" type=\"hidden\" value=\"1\" />另有2-3個隱藏輸入。

+0

你能提供什麼是包含在htmldata變量一個真實的例子? –

+0

這是包含它htmldata和另外2-3隱藏的輸入:'' – Sp3ct3R

回答

1

$('#ok', htmldata)會尋找所有後代htmldata具有的ok的ID

您需要更改$('#ok', htmldata)htmldata.filter('#ok')

+0

我完全同意。然後,你的源代碼應該是這樣的: '$。員額(網址{名:名}功能(數據) {VAR = htmldata $(數據); 如果($(htmldata).filter( '#o​​k')VAL()== '1'){ // 一些事情進行 } });' –

0

因爲htmldata中的數據沒有在DOM中初始化,所以如果您想要這樣做,可以將其注入到隱藏div中的DOM中。

但更好的方法是從AJAX返回JSON,然後檢查狀態是非常容易的。

當然,你總是可以解析使用正則表達式:)第一種情況(未測試)的

示例 - 要把它放到回調函數:

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

} 
+0

你能給我一個例子.. 。這是我的第一個jquery/ajax頁面:D – Sp3ct3R

1

其實沒有必要在下面一行用$

var htmldata = $(data); 

直接使用var htmldata = data;,並嘗試以確認是否ATA有在htmldata.If是則進一步進行。

0

您可以使用find()

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

您正在從剛創建的jQuery對象:) – Lapple

+0

@Lapple製備jQuery對象。:修正了,謝謝:) – Sarfraz