Javascript JS中的我的字符串连接不是';行不通
我试图连接两个字符串,但它没有做任何事情,控制台中也没有错误。所以很可能我太瞎了,看不到问题所在。。。 下面是我获取两个字符串的代码:Javascript JS中的我的字符串连接不是';行不通,javascript,string-concatenation,Javascript,String Concatenation,我试图连接两个字符串,但它没有做任何事情,控制台中也没有错误。所以很可能我太瞎了,看不到问题所在。。。 下面是我获取两个字符串的代码: $.get( "urlto/file.css", function(data) { cssOne = data; return cssOne; }, "html"); $.get( "urlto/otherfile.css", function(data) { cssTwo = data; return cssTwo; }, "
$.get( "urlto/file.css", function(data) {
cssOne = data;
return cssOne;
}, "html");
$.get( "urlto/otherfile.css", function(data) {
cssTwo = data;
return cssTwo;
}, "html");
下面是连接的方法:
function mergeCSS(){
cssText = cssOne+" "+cssTwo;
return cssText;
}
这些变量都是全局变量,所以我认为这不会导致任何问题。
就像我说的也许我只是瞎了。。。有人知道为什么它不起作用吗?
ThxJquery是不同步的。所以你没有得到想要的结果。您可以使用同步JavaScript 您可以这样做:
$.get( "urlto/file.css", function(data) {
cssOne = data;
$.get( "urlto/otherfile.css", function(data) {
cssTwo = data;
var newCSS = mergeCSS();//call function here
}, "html");
}, "html");
function mergeCSS(){
cssText = cssOne+" "+cssTwo;
return cssText;
}
更新:如果要在按钮上执行此操作,请单击以下按钮:
$("#buttonId").click(function(){
$.get( "urlto/file.css", function(data) {
cssOne = data;
$.get( "urlto/otherfile.css", function(data) {
cssTwo = data;
var newCSS = mergeCSS(cssOne,cssTwo);//call function here
alert(newCSS);
}, "html");
}, "html");
});
function mergeCSS(cssOne,cssTwo){
cssText = cssOne+" "+cssTwo;
return cssText;
}
这是一个延迟的对象争用问题。用于等待所有承诺得到解决。您的情况下不需要回调:
var p1 = $.get( "urlto/file.css", null, "html");
var p2 = $.get( "urlto/otherfile.css", null, "html");
$.when(p1,p2).done(function(r1,r2){
cssText = r1 + r2;
});
发布完整的代码,我认为变量
cssOne
&cssTwo
没有得到更新。何时调用mergeCSS()
?取决于何时调用mergeCSS()
$。get
是异步的(它是$.ajax
的包装器)因此,仅当$.get
完成时,才会调用success函数。很可能您在调用mergeCSS
之前调用了它们。从回调返回值到异步操作(如$.get()
)没有任何效果。我强烈怀疑这就是您的问题所在-您正在尝试在响应到达之前连接字符串。警报仍然只包含cssOne。注意:在第一个.get
完成之前,这不会触发.get
到/otherfile.css
。在这种情况下,这会导致效率较低,并且如果您必须发出更多的.get
请求,则完全无法管理。+1:这是一个比接受的答案好得多的答案,因为它会立即启动两个请求,而不是按顺序启动它们。