2010-11-29 46 views
0

我的頁面需要從另一個頁面抓取特定的div以在當前頁面的div中顯示。對於$.load這是一個完美的工作,除了我從中拉取的HTML源不一定是完整的,並且似乎偶爾存在標記錯誤,並且IE只是普通的在這種情況下不會使用它。所以我將它改爲$.get,以字符串形式抓取頁面的HTML源代碼。將它傳遞給$來解析它作爲DOM在IE中與$.load有同樣的問題,所以我不能這樣做。我需要一種解析HTML字符串的方法來查找我的div#information的內容,但不是頁面的其餘部分在其</div>之後。 (PS我div#information包含各種其他div的和元素。)在jQuery中解析HTML響應

編輯:另外,如果任何人有jQuery的$.load不能夠解析在IE HTML響應修復,我很樂意聽到這一點。

+0

大多數瀏覽器都還好用病態的HTML。你可以發佈一個IE實際上失敗的示例嗎? – casablanca 2010-11-29 20:50:34

+0

這是一個非常大的頁面,我不確定錯誤的確切位置,但所有跡象都指出這是原因。然後我又可能完全錯了。 – pettazz 2010-11-29 20:55:41

+0

發佈格式錯誤的HTML,這是jQuery應該能夠做得很好的一件事。渲染引擎不會被$ .load解析... – Drew 2010-11-29 20:57:00

回答

1

如果您嘗試加載的資源受您控制,您的實施規範就會得到很差的優化。當你只需要一小部分內容時,你不想問你的服務器整個頁面的內容。

你想要做的是隔離你想要的內容,並讓服務器只返回你需要的內容。請注意,由於您知道自己的HTML格式不正確,因此您應該咬緊牙關並驗證您的標記。這將爲您節省一些麻煩(如此)。

最後,如果您確實無法優化此過程,我的猜測是您正在創建不一致性,因爲解析的HTML中的某些元素與當前頁面上的元素具有相同的ID。相同的ID是無效的,並導致許多跨瀏覽器的JavaScript問題。

0

嚴格使用字符串,您可以使用正則表達式來查找id="information"標記內容。切勿將其解析爲html。

我想嘗試的$.load參數接受html選擇以及

$('#results').load('/MySite/Url #Information');