jquery选择器与脚本标签的问题

标签 jquery

我正在尝试选择全部 <script type="text/html">页面中的标签。我用<script>用于存储 HTML 模板的标签,类似于 how John Resig does it 。由于某种原因,以下 jquery 选择器似乎没有选择任何内容:

$("script[type*=html]").each(function() {
    alert("Found script "+this.id);
});

此标记位于 HTML 文档的主体中:

<body>
    <script id="filter-search" type="text/html">
        <dt>Search</dt>
        <dd><input type="text"/></dd>
    </script>
</body>

我也尝试过将其放入HTML文档的HEAD中,但仍然没有找到。从未显示任何警报。

如果我将代码更改为:

$("script[type*=javascript]").each(function() {
    alert("Found script "+this.id);
});

然后它只查找 HEAD 中具有 src 的脚本到外部文件。实际页面中找不到脚本。例如,HEAD 中包含以下内容:

<head>
    <script type="text/javascript" src="jquery.js" id="jquery"></script> 
    <script type="text/javascript" src="jquery-ui.js" id="ui"></script> 
    <script type="text/javascript" id="custom">
        $(document).ready( function() {
            $("script[type*=javascript]").each(function() {
                alert("Found script "+this.id);
            });         
            $("script[type*=html]").each(function() {
                alert("Found TEMPLATE script "+this.id);
            });         
        });
    </script> 
    <script id="filter-test" type="text/html">
        <dt>Test</dt>
    </script>
</head>
<body>
    <script id="filter-search" type="text/html">
        <dt>Search</dt>
        <dd><input type="text"/></dd>
    </script>
</body>

我收到以下警报:

  • 找到脚本 jquery
  • 找到脚本用户界面

customfilter-test HEAD 中的脚本未被选择,filter-search 也未被选择。 body 中的脚本标签。

这是预期的行为吗?为什么这不起作用?我可以解决这个问题,但令人烦恼的是它不起作用。

编辑:事实证明,使用上面的示例确实可以正常工作。在我的情况下,jquery 代码位于外部 Javascript 模块中,并且它肯定无法正常工作。当我将代码移动到页面本身的脚本标记中时,它就起作用了。我仍然没有弄清楚为什么它在外部文件中不起作用,但如果我在某个时候解决它,我会在这里报告。

最佳答案

您使用什么浏览器?该脚本在 Chrome、Firefox 和 IE6 中运行良好,并给我发出警报:

  • 找到脚本 jquery
  • 找到脚本用户界面
  • 找到自定义脚本
  • 找到模板脚本过滤器测试
  • 找到模板脚本过滤器搜索

关于jquery选择器与脚本标签的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787566/

相关文章:

javascript - 使用 jquery cookie 插件设置主体类

javascript - 通过javascript将文件从html形式发送到php

c# - ajax 调用持续运行

javascript - JQuery UI 对话框未正确显示在传单顶部

javascript - 使用 jQuery 动画 addClass/removeClass

javascript - 寻找最近的前一里

javascript - 加载资源失败:net::ERR_FILE_NOT_FOUND 加载 json.js

jQuery 超链接 - href 值?

jquery - 如果选择长文本选项,则选择元素 100% 宽度错误(Select2 bootstrap 主题)

javascript - 我的 signalR 客户端缺少哪些基本组件?