2011-03-30 121 views
3

我有以下的div結構,但這種結構正在發生變化jQuery的獲得DIV內容

<div class="rt-container"> 
    <div class="rt-block"> 
     <div id="rt-mainbody"> 
      <div id="responseMessage">Welcome bogyoro. Now you are loged in.</div> 
      <div id="responseErrorMessage">5</div> 
     </div> 
    </div> 
</div> 

我用下面的代碼來獲取responseMessage內容:

var div = logReg.query("<div>").html(msg); 
var message = div.children('#responseMessage').html(); 
var isValid = div.children('#responseErrorMessage').html(); 
if(isValid == null) 
{ 
    message = div.find('#responseMessage').html(); 
    isValid = div.find('#responseErrorMessage').html(); 
} 

但和isValid是空值。

更新:

var logReg = {}; 
logReg.query = jQuery.noConflict(true); 
+1

什麼是logReg?什麼是「查詢」? – 2011-03-30 14:00:18

+2

一個快速的建議:你不需要'div.find',只需使用:'$('#responseMessage')。html()'(你叫ID,它是唯一的。 – jackJoe 2011-03-30 14:00:25

+0

你正在檢查errorMessage是否存在?或者它是否存在? – jackJoe 2011-03-30 14:03:36

回答

4
var isValid = div.children('#responseErrorMessage').html(); 

if (isValid == null) { } 

總是會導致錯誤。如果元素存在,那就是。

如果一個元素爲空,返回將是一個空字符串。改爲使用if (isValid == "") { }

+0

我只是發佈相同:)我也認爲OP代碼中的邏輯是某種錯誤,isValid Var會包含不同的對象,這很奇怪。 – jackJoe 2011-03-30 14:16:18

+0

他的邏輯沒有意義。他宣佈一個var來保存錯誤文本。然後他試圖看看它是否不是空的,如果不是,他會重新聲明它。奇怪的。 – roosteronacid 2011-03-30 14:26:53

4

如果你想獲得具有ID元素的HTML,那麼你可以簡單地使用id選擇。

$("#responseMessage").html(); 
+0

好的,但msg是一個ajax響應,我沒有訪問服務器端 – 2011-03-30 14:04:30

0

爲什麼不這樣做呢?

var message = logReg.query('#responseMessage').html(); 
var isValid = logReg.query('#responseErrorMessage').html(); 

代碼的第一行有問題。它會返回一整列div標籤。所以當你做div.children('...')時,你會爲整個div列表做這件事。

由於您具有特定元素的錨點,請直接查看它們。