2017-09-18 18 views
0

我有像波纹管如何更改“+一些+”元素的值中的src

<script src='http://www.example.com/dosome/' + some +'/afsddfa'></script> 

一个src脚本如何替换“+一些+”与元件3,4,5,或其他元件使用jQuery的

+0

其''一个'JS变量? –

+0

,因为我不认为这是有效的标记,你将无法使用正常的js DOM功能。如果你有这个作为js字符串的一部分,那么你将需要使用正则表达式,但是我会避免不惜一切代价将其置于标记中。如果你坚持这样做,你可能可以使用innerHTML,但这取决于DOM解析器正确读取你的可疑HTML – slackOverflow

+0

如果它不是可能的请告诉如何使用其他方法添加元素 – Rajendra

回答

4

考虑要添加动态脚本定位到您的网站:

let src = 'http://www.example.com/dosome/' + some +'/afsddfa'; 
$('<script>').attr(
{ 
    src: src, 
    type: 'text/javascript' 
}).appendTo('body'); 
+0

太好了。把它添加到头也是有效的。 –

2
<script> 
$(document).ready(function(){ 
var some=5; 
var scriptUrl='http://www.example.com/dosome/' + some +'/afsddfa'; 
var script = document.createElement("script"); 
script.setAttribute("type", "text/javascript"); 
script.setAttribute("src", scriptUrl); 
document.getElementsByTagName("head")[0].appendChild(script); 

}); 
</script> 

这个脚本会包括你的javascrip t文件在运行时动态地运行。

该脚本将在执行该行document.getElementsByTagName("head")[0].appendChild(script);后立即开始下载,并且只要下载它就会执行或以其他方式可用。

+0

在这里您可以通过指定url来将javascript文件添加到html的头部。确保有一个头元素。如果不是的话,也可以添加到身体作品。这是你的预期产出吗? –

0

您可以使用jQuery的改变src像这样:

$("script").each(function(){ 
    var element = "/3" //added a slash so it doesnt replace other string 
    var old_src = $(this).attr('src'); 
    var new_src = old_src.replace("/some", element); 
    $(this).attr('src', new_src); 
}); 

,当然这是在你的页面的所有脚本,你没有指定你的问题的详细信息,说明您正在试图完成的任务,也这不会卸载已经加载的脚本,服务器端解决方案会更好。

这里一个版本加载新的脚本源:使​​用$.getScript您可以加载新的脚本和执行内容

0
<script> 
var some = 5; 
var script = '<script src="https://www.example.com/dosome/' + some + '/asdfsaf.js"><\/script>'; 
document.write(script); 
</script> 

这个脚本运作良好,我能够改变元素

$("script").each(function(){ 
    var element = "/3" //added a slash so it doesnt replace other string 
    var old_src = $(this).attr('src'); 
    var new_src = old_src.replace("/some", element); 

    //load the new script 
    $.getScript(new_src); 

    $(this).attr('src', new_src); 
});