2011-05-10 75 views
2

我將外部網頁的整個HTML內容傳遞給一個javascript變量(「myHTML」)。接下來,我試圖確定在myHTML變量中是否存在具有特定屬性的兩個不同標記。我正在尋找某個<div>標記和<script>標記的存在。我能夠識別<div>標記:jQuery:問題使用.find()命令

alert($(myHTML).find('div[id^="myID"]').length) 

上面的代碼返回正確的計數。但是,我無法找到<script>標籤(即使它存在於頁面上/中MYHTML變量):

alert($(myHTML).find('script[src*="example.com"]').length) 

上面的代碼總是返回零,即使有一個<script>標籤有一個src屬性指向「... example.com/...」。

任何人都可以解釋爲什麼第一行代碼工作,而第二行失敗?有沒有解決這個問題的方法?

+0

如果你只是嘗試'console.log($(myHTML).find('script')。length)',你會得到什麼? – HurnsMobile 2011-05-10 17:30:05

回答

4

有人在這裏討論過:jquery: Keep <script> tag after .find()

的jQuery條無論何時創建一個字符串的jQuery對象的所有腳本標記。解決方案是在將其轉換爲對象之前使用正則表達式解析字符串。

+0

感謝您的信息。如果我使用正則表達式來查找所需的腳本標記,是否有任何方法可以確保我不匹配被註釋掉的腳本標記(不太可能發生,但可能)? – jake 2011-05-10 17:41:45

+0

在搜索腳本之前,您可以使用預處理正則表達式從HTML中刪除所有註釋掉的部分。 – DarthJDG 2011-05-10 18:15:42