gpt4 book ai didi

javascript - JQuery .attr 没有按预期工作

转载 作者:搜寻专家 更新时间:2023-11-01 04:43:41 25 4
gpt4 key购买 nike

我使用 JQuery 从页面上加载的所有脚本中搜索并输出 src 属性。这是我的代码:

$('script').each(function(index, value) { 

var src = $(this).attr('src');
var src = src || 'no source';
console.log(src);

}

我们正在搜索的示例脚本:

<script type='text/javascript' src='http://domain.co.uk/wp-includes/js/jquery/jquery.js?ver=1.11.0'></script>

控制台输出为:

http://domain.co.uk/wp-includes/js/jquery/jquery.js?ver=1.11.0 

这工作正常,所有这些 src 都被输出了。但是有一个例子我得到了一个错误。当脚本将 javascript 直接输出到包含“src”的页面时,就会出现问题。在这种情况下,我收到以下错误:Uncaught TypeError: Cannot read property 'split' of undefined

我可以看出这是因为我的代码正在从输出的 javascript 中获取 src。我在底部包含了这个 Javascript,以帮助准确显示我在说什么。

具体那一行是:s.src = '//api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js';

就在错误之前,console.log 输出:

//api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js

总结

我以为 .attr 只会获取目标元素中的属性。我如何让它做到这一点并忽略似乎导致此错误的所有其他内容。

输出有问题的脚本

    <script type="text/javascript" data-cfasync="false">
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = '//api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js';
var x = document.getElementsByTagName('head')[0];
x.appendChild(s);
})();
</script>

最佳答案

当我尝试时,我可以毫无问题地将 src 输出到页面上的所有脚本,包括您发布的代码中的脚本。

js/jquery-2.1.1.min.js script.js
//api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js

我建议您将 jQuery 升级到 2.1.1。我使用 Chrome 版本 35 进行测试。

关于javascript - JQuery .attr 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23812778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com