我正在尝试捕获特定的注释行。以下代码适用于除IE以外的每个浏览器:
<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>£267.50</b><br />
<!-- Policy Name: Investment Bank -->
<!--LLF: 1253.12 --> //This is the line I want to capture
如果有办法为所有浏览器做得很好但是如果你能想到IE +的特定解决方案条件评论也没关系。
谢谢!
答案 0 :(得分: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
之后包括分号。