如果你想用 jQuery 在 <head> 标签内插入 <script>,但要确保它插入在 <title> 标签之前,可以使用以下方法:

方法 1:使用 jQuery 的 .before() 方法

如果 <head> 里已经有 <title>,可以用 $('title').before() 插入 <script>

var script = $('<script>', {
  src: 'https://example.com/your-script.js',
  type: 'text/javascript'
});

$('title').before(script); // 在 <title> 之前插入 <script>

方法 2:直接插入 <head> 的开头(如果 <title> 是第一个元素)

如果 <title> 是 <head> 的第一个子元素,可以直接用 $('head').prepend()

var script = $('<script>', {
  src: 'https://example.com/your-script.js',
  type: 'text/javascript'
});

$('head').prepend(script); // 插入到 <head> 的最前面

方法 3:原生 JS 方式(确保兼容性)

如果 jQuery 不可用,可以用原生 JS 实现:

var script = document.createElement('script');
script.src = 'https://example.com/your-script.js';
script.type = 'text/javascript';

var title = document.querySelector('title');
if (title) {
  title.parentNode.insertBefore(script, title); // 在 <title> 之前插入
} else {
  document.head.appendChild(script); // 如果没有 <title>,直接插入 <head>
}

注意事项

  1. 确保 <title> 存在:如果 <head> 里没有 <title>$('title').before() 会失效,此时应该用 $('head').prepend()

  2. 避免重复加载:如果脚本可能被多次插入,建议先检查是否已存在:

    if (!$('script[src="https://example.com/your-script.js"]').length) {
      $('title').before(script);
    }
  3. 异步加载:如果需要异步加载,可以添加 async 或 defer 属性:

    var script = $('<script>', {
      src: 'https://example.com/your-script.js',
      async: true
    });

完整示例 

<!DOCTYPE html>
<html>
<head>
  <title>My Page</title>
</head>
<body>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(function() {
      var script = $('<script>', {
        src: 'https://example.com/your-script.js',
        type: 'text/javascript'
      });
      $('title').before(script);
    });
  </script>
</body>
</html>

如果你想使用 jQuery 查找 <head> 标签内 id 为 test 的 <script> 标签,可以使用以下方法:

方法 1:直接使用 $('head script#test')

var script = $('head script#test');
if (script.length) {
  console.log('找到 script:', script[0]);
} else {
  console.log('未找到 id="test" 的 script');
}

说明

  • $('head script#test') 查询 <head> 下的 <script id="test">

  • script.length 检查是否找到匹配的元素(length > 0 表示找到)。

  • script[0] 获取原生的 DOM 元素(也可以用 script.get(0))。


方法 2:使用 find() 方法

var script = $('head').find('script#test');
if (script.length) {
  console.log('找到 script:', script[0]);
} else {
  console.log('未找到 id="test" 的 script');
}

说明

  • $('head').find('script#test') 先选中 <head>,再查找其内部的 <script id="test">

  • 适用于更复杂的查找条件(如 $('head').find('[id="test"]'))。


方法 3:使用原生 JS 对比

如果你不想用 jQuery,可以用原生 JS:

var script = document.querySelector('head script#test');
if (script) {
  console.log('找到 script:', script);
} else {
  console.log('未找到 id="test" 的 script');
}

总结

方法 代码 适用场景
直接选择器 $('head script#test') 简单直接
find() 方法 $('head').find('script#test') 适用于更复杂的查找
原生 JS document.querySelector('head script#test') 无 jQuery 依赖

如果你只需要检查是否存在该 <script>,可以用:

if ($('head script#test').length) {
  console.log('存在 id="test" 的 script');
}