jquery.从文本文件中获取和检索变量
jquery to use .get and retrieve variables from text file
我在一个文本文件中有一个名称列表
示例:
user1 = Edwin Test //first line of text file
user2 = Test Edwin //second line of text file
我希望每行数据都设置为一个变量:
user1 and user2 //so that after jquery loads I can user $user1 and it will give Edwin Test
文本文件将与jquery文件位于同一文件夹中。
我的代码:
$.get('users.txt', function(data) {
alert(data);
var lines = data.split("'n");
$.each(lines, function() {
var line=perLine[i].split(' ');
});
});
当我在本地使用mamp加载页面时,我可以使用警报查看文件上的内容,但当我在控制台中键入例如(user1(时,它会显示变量未设置。
以下是我认为您想要的:
$.get('users.txt', function(data) {
var lines = data.split("'n");
$.each(lines, function(i) {
var line = lines[i].split(' = ');
window[line[0]] = line[1];
});
});
稍后…
console.log(user1); // "Edwin Test"
var users = {};
var lines = data.split("'n");
$.each(lines, function (key, value) {
var prep = value.split(" = ");
users[prep[0]] = prep[1];
});
要输出user1,您可以调用users.user1
JSFiddle
代码向全局名称空间添加了许多变量。此外,它会引发错误,因为$.get是异步的,因此需要在注释中显示的位置调用依赖于现有变量的代码,以保证其工作。这会被许多人认为是糟糕的风格,但以下是如何做到的:
$.get('users.txt', function(data) {
alert(data);
var lines = data.split("'n");
var i,l=lines.length,parts;
for(i=0;i<l;++i){
parts = lines[i].split('=');
if (parts.length == 2){
try {
// window is the global object. window['x']=y sets x as a global
window['$'+parts[0]] = parts[1]; // call the var $something
} catch(e) {}; // fail silently when parts are malformed
}
// put any code that relies on the variables existing HERE
}
});
以下是你可以做的:
将数据放入对象中。将对象传递给包含下一步的函数showVars(vars)
。
$.get('users.txt', function(data) {
alert(data);
var lines = data.split("'n");
var i,l=lines.length,parts, vars = {};
for(i=0;i<l;++i){
parts = lines[i].split('=');
if (parts.length == 2){
try {
vars[parts[0]] = parts[1];
} catch(e) {}; // fail silently when parts are malformed
}
showVars(vars); // put any code that relies on the variables existing HERE
}
});
function showVars(vars){
// put whatever uses/displays the vars here
}
另一种更容易更改数据格式的方法。如果您可以以这种格式存储数据,称为JSON:
['Edwin Test','Test Edwin','Someone Else','Bug Tester']
然后解析器要么是一个单行array = JSON.parse(jsonString)
,要么有时由jQuery为您完成并放入数据。JSON可以存储各种数据,除Javascript外,其他语言库也支持JSON,如PHP、python、perl、java等。
$.get('users.txt', function(data) {
alert(data);
var lines = data.split("'n");
for(var i = 0 ; i < lines.length; i++){
var line=lines[i].split(' ');
});
});
我认为你错过了循环中的i
。
我想你也可以做
$.each(lines, function(i) {
var line=lines[i].split(' ');
});
无论如何,我可能建议您在服务器上进行字符串拆分,并以正确/准备好的形式将其交付给客户端。
相关文章:
- 如何在JavaScript中检索变量的名称
- 如何从Mysql检索变量并在JS中的函数中使用它
- 尝试检索变量以检查表单是否有效
- Javascript 正则表达式从句子中检索变量
- 从 JavaScript 传递后无法检索变量
- 从函数中检索变量
- 从python Appengine中的Javascript函数中检索变量
- 如何在jQuery中检索变量的值
- 从 javascript 对象方法回调中检索变量
- 从javascript循环中的函数中检索变量
- 用javascript在onclick中检索变量
- 用Java解析JavaScript代码以检索变量'的名字
- 如何检索变量而不是echo
- 使用ajax加载函数检索变量
- jquery.从文本文件中获取和检索变量
- 在JavaScript函数中从SQL查询中检索变量(重写)
- 从包含 Javascript 中包含的 JSON 数据的 HTML 中检索变量
- 从HTML网站检索变量名
- 从twitter的json对象中检索变量
- 索引页检索变量从所有的帖子