Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 使用jquery时未检测到全局变量,但没有错误_Javascript_Jquery_Css_Web_Frontend - Fatal编程技术网

Javascript 使用jquery时未检测到全局变量,但没有错误

Javascript 使用jquery时未检测到全局变量,但没有错误,javascript,jquery,css,web,frontend,Javascript,Jquery,Css,Web,Frontend,您好:)这似乎是个愚蠢的问题,但我的全局变量在jquery函数中不起作用 在这里,我在函数外部创建了一个变量,并将其命名为“css”: 在声明后面的函数中,我在jquery函数中调用了“css”变量: function create() { var Elements = ""; var divId = "num"; for (var i = 0 + initial; i < 7 + initial; i++) { divId += i; Elements += '<di

您好:)这似乎是个愚蠢的问题,但我的全局变量在jquery函数中不起作用

在这里,我在函数外部创建了一个变量,并将其命名为“css”:

在声明后面的函数中,我在jquery函数中调用了“css”变量:

function create() {

var Elements = "";

var divId = "num";

for (var i = 0 + initial; i < 7 + initial; i++) {
  divId += i;
  Elements += '<div id=' + divId + '>' + i + '</div>';

  $('<style>' + '#' + css + '</style>').appendTo(document.head);
}

var container = document.getElementById("row");
container.innerHTML = Elements;

}
函数创建(){
var元素=”;
var divId=“num”;
对于(变量i=0+初始值;i<7+初始值;i++){
divId+=i;
元素+=''+i+'';
$(''+''#'+css+'').appendTo(document.head);
}
var container=document.getElementById(“行”);
container.innerHTML=元素;
}
但是,输出的样式并不像它应该的那样。奇怪的是,我也没有得到任何未定义变量的错误。 当我将变量声明放入
函数create()
中时,一切正常。但我不希望这样,因为我会有多个类似于
函数create()
的函数,如果只声明一次变量,效率会更高


我怀疑这是因为jquery的性质?有什么帮助吗

克里斯·李的评论似乎解决了你的问题,但没有找到答案,这个问题似乎也不会结束

如果Chris Li决定创建一个答案,我将删除我的答案

在他的回答中,我强烈建议不要命名变量
元素
。JavaScript中的变量不应以大写字母开头。要查看变量命名约定,请查看本文档中标题为“变量名称”的部分

我总是发现在代码段中更容易看到代码,所以我在下面创建了一个代码段来演示您的问题

//对不变的变量使用const,对局部变量使用let,而不是var
//如果您的浏览器环境支持它。
const css='{width:200px;字体系列:“Futura”,无衬线;文本对齐:居中;flex-grow:1;flex-basis:0;padding:8px 10px;}';
函数create(){
//我不知道'initial'指的是什么,所以我只在这里使用占位符。
初始值=0;
让元素=“”;
设divId='num';
对于(设i=0+初始值;i<7+初始值;i++){
divId+=i;
元素+=''+i+'';
//上述行也可以使用模板文本编写。
//元素+=`${i}';
$(''+''#'+divId+css+'').appendTo(document.head);
}
const container=document.getElementById('row');
container.innerHTML=元素;
}
//调用create函数以查看它的操作。
创建()

看起来像您添加的
{…}
样式,您确定它在没有id的情况下工作吗?@ChrisLi oops我忘记了“divId”。在我添加它之后,它就工作了。非常感谢你!
function create() {

var Elements = "";

var divId = "num";

for (var i = 0 + initial; i < 7 + initial; i++) {
  divId += i;
  Elements += '<div id=' + divId + '>' + i + '</div>';

  $('<style>' + '#' + css + '</style>').appendTo(document.head);
}

var container = document.getElementById("row");
container.innerHTML = Elements;

}