Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将参数传递到外部js脚本的最佳方法_Javascript_Jquery - Fatal编程技术网

Javascript 将参数传递到外部js脚本的最佳方法

Javascript 将参数传递到外部js脚本的最佳方法,javascript,jquery,Javascript,Jquery,如何使用jQ将参数传递到外部jScript 我能够让它正常工作: <script id = 'myScript' data-myParm =' my value' src = './myScript.js' > </script> 但我认为我已经看到了一种非常简单(而且更好)的方法,可以使用jQuery,而不使用脚本id <script src='./myScript.js?myParm=my%value&'> </

如何使用jQ将参数传递到外部jScript

我能够让它正常工作:

<script
     id = 'myScript' 
    data-myParm =' my value'
    src = './myScript.js' >
</script>
但我认为我已经看到了一种非常简单(而且更好)的方法,可以使用jQuery,而不使用脚本id

<script src='./myScript.js?myParm=my%value&'> </script>

我尝试了$.data('myParm')和$('script').data('myParm')之类的东西,但没有成功


建议?

如果您的脚本是同步加载的,那么每个脚本都将是最初运行时DOM中的最后一个脚本

因此,您应该能够做到这一点:

var param = $('script').last().data('myparm');
或相当于:

var scripts = document.getElementsByTagName('script');
var param = scripts[scripts.length - 1].getAttribute('data-myparm');
请注意,您可以在任何准备好文档的处理程序或脚本最初加载后执行的任何操作之外执行此操作

编辑:说明
数据-*
属性应被视为全部小写,并且它看起来像jQuery的
。数据(…)
仅在提供的字符串全部小写时才起作用,因此我建议在整个过程中使用所有小写
数据-*
属性。

试试看

var data=$(“脚本”).filter(函数(i,el){
return!!$(el).data().myparm
}).data().myparm | | void 0;
console.log(数据)


使用jQuery做这件事非常简单(而且更好)的方法
。。。使用jQuery不一定比使用普通javascript“更好”。也许jQuery不一定“更好”,但它更有趣。$('script')。last()。data('myparm')起作用了,谢谢你-我不知道为什么它需要小写。也许数据破折号需要它?@edwardsmarkf是的,看起来HTML5规范说,
data-*
属性应该被视为小写(),所以你最好在HTML和JS中都使用所有小写。顺便说一句,你接受的答案是我的明目张胆的副本(如果你对此有疑问,你可以检查时间戳并编辑历史记录)。如果这确实回答了你的问题,你会接受我的吗?对不起,我想我接受了你的答案。你的回答确实是第一个通过的。但不管怎样,这是非常令人兴奋的工作。再次感谢你对我的帮助。出于某种原因,我的问题本身被否决了,尽管我对这个问题做了很多研究,考虑到实际利用html5数据的例子非常少,我确实认为这个问题非常相关未捕获的TypeError:无法读取未定义的属性“myparm”
var scripts = document.getElementsByTagName('script');
var param = scripts[scripts.length - 1].getAttribute('data-myparm');