2012-06-01 25 views
1

我想捕捉一個特定的註釋行。下面的代碼工作確定爲每一個瀏覽器當然除了IE:如何在IE中使用JS/jQuery捕獲註釋nodeType 8?

<script> 
var llf = jQuery('.select').contents().filter(function() { 
return this.nodeType === 8 // Comment node 
})[2].nodeValue.replace("LLF: ", "").trim(); 
console.log(llf); 
alert(llf); 
</script> 

這是HTML:

<td class="select" nowrap="nowrap" rowspan="3"> 
<!-- NON IDEAL REASON: 1 hour time window --> 
<b>$423.59</b><br /> 
<b>&#163;267.50</b><br /> 
<!-- Policy Name: Investment Bank --> 
<!--LLF: 1253.12 --> //This is the line I want to capture 

如果有辦法做到這一點偉大的所有瀏覽器,但如果你能想到IE +條件註釋的特定解決方案也很好。

謝謝!

回答

1

IE沒有String#trim,它最近纔在ES5中引入,所以當你嘗試使用它時會拋出一個異常。但是當你使用jQuery,您可以使用jQuery.trim代替:

var llf = jQuery.trim(jQuery('.select').contents().filter(function() { 
    return this.nodeType === 8; // Comment node 
})[2].nodeValue.replace("LLF: ", "")); 
console.log(llf); 
alert(llf); 

Live copy | source - 在IE7和IE9爲我工作,所以我假定IE8以及


我建議打破這種說法倒有幾分(至少不那麼像這樣的問題比較容易調試),以及包括=== 8之後的分號。

+0

那個小細節。謝謝先生,指出這一點。 :) – fedxc

+0

@fedxc:大聲笑,沒有煩惱,很高興它有幫助。 –