1

我正在尝试捕获特定的注释行。以下代码适用于除 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>&#163;267.50</b><br />
<!--  Policy Name: Investment Bank -->
<!--LLF: 1253.12 --> //This is the line I want to capture

如果有一种方法可以为所有浏览器做到这一点,但如果你能想到一个针对 IE + 条件注释的特定解决方案也很好。

谢谢!

4

1 回答 1

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);

现场复制| 来源- 在 IE7 和 IE9 中为我工作,所以我也假设 IE8


我建议稍微分解一下该语句(尤其是这样的问题更容易调试),并在=== 8.

于 2012-06-01T13:29:36.643 回答