【问题标题】:jquery id selector doesn't work in IE 8jquery id 选择器在 IE 8 中不起作用
【发布时间】:2015-10-30 02:30:05
【问题描述】:

我有以下选择器:

$('#terminal-template').text()

以及正文中的以下jsp页面片段:

<script type="text/template" id="terminal-template">
    <li data-terminal-id="{{ id }}" class="{{ clazz2 }}">
        <label>
            <input type="checkbox" name="terminal" class="{{ clazz }}" data-terminal-id="{{ id }}" />
            <a href="#" title="" class="image"><img
                    src="getSmallThumbnail/{{imageId}}"
                    alt=""/></a>

            <h3>{{ name }}
                <small>{{ place }}</small>
            </h3>

            <p class="count">Проходимость: <span>{{ count }}</span> чел./час</p>

            <p class="count">Стоимость: <span>{{ amount }}</span> руб./час</p>

            <p class="count">Количество свободных слотов: <span>{{ numberOfEmptyCase }}</span> </p>
        </label>
    </li>
</script>

在 IE $('#terminal-template').text() 中返回空 ("")

但在 chrome 中 - 它可以正常工作并返回

"
    <li data-terminal-id="{{ id }}" class="{{ clazz2 }}">
        <label>
            <input type="checkbox" name="terminal" class="{{ clazz }}" data-terminal-id="{{ id }}" />
            <a href="#" title="" class="image"><img
                    src="getSmallThumbnail/{{imageId}}"
                    alt=""/></a>

            <h3>{{ name }}
                <small>{{ place }}</small>
            </h3>

            <p class="count">Проходимость: <span>{{ count }}</span> чел./час</p>

            <p class="count">Стоимость: <span>{{ amount }}</span> руб./час</p>

            <p class="count">Количество свободных слотов: <span>{{ numberOfEmptyCase }}</span> </p>
        </label>
    </li>
"

【问题讨论】:

  • 您是否尝试过使用.html().text() 可能在 IE8 中使用 script 标记失败。
  • 你用的是哪个版本的jquery?
  • jquery 1.8.2 版
  • 好的。版本似乎还不错。我试过这个并且能够让它在 IE8 var templateVal = $('#terminal-template').clone(); console.log(templateVal.html()); 上运行你能试试这个并告诉我它是否适合你吗?
  • Sushil,manji 已经答对了

标签: javascript jquery internet-explorer jquery-selectors


【解决方案1】:

从存储在虚拟脚本块中的模板中获取 HTML 时,您应该始终使用 .html(),而不是 text()

例如这适用于所有浏览器:

var html = $('#terminal-template').html();

我真的很惊讶text() 在任何浏览器上都会返回任何内容,但我想 Google 虽然这可能有用。从技术上讲,脚本内容是“文本”,但并非所有浏览器都标准化,因此最好避免。 html() 保证返回 innerHTML 属性,因此将始终适用于所有浏览器

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2011-02-15
    • 2011-09-25
    • 1970-01-01
    • 2011-10-29
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多