javascript - 返回前用变量填充 JavaScript 数组

标签 javascript jquery html

使用变量填充 JavaScript 数组

Old JsFiddle

我正在尝试创建一个如下所示的数组

//mapping array
var mapping = [
    [ "[POSITION]" , $( ".position" ).val() ],
    [ "[NAME]" , $( ".name" ).val() ],
    [ "[TOWN/DISTRICT]" , $( ".town" ).val() ],
    [ "[REGION]" , $( ".region" ).val() ],
    [ "[COUNTRY]" , $( ".country" ).val() ],
    [ "[HOG/HOS]" , $( ".hoghos" ).val() ],
    [ "[TOURIST ATTRACTION]" , $( ".tourist" ).val() ],
    [ "[SECTOR1]" , $( ".sector1" ).val() ],
    [ "[SECTOR2]" , $( ".sector2" ).val() ],
    [ "[SECTOR3]" , $( ".sector3" ).val() ],
    [ "[PITCHER]" , $( ".pitcher" ).val() ]
];

这里没有变量列表

//vars
var ie1 = "[POSITION]";
var ie2 = "[NAME]";
var ie3 = "[TOWN/DISTRICT]";
var ie4 = "[REGION]";
var ie5 = "[COUNTRY]";
var ie6 = "[HOG/HOS]";
var ie7 = "[TOURIST ATTRACTION]";
var ie8 = "[SECTOR1]";
var ie9 = "[SECTOR2]";
var ie10 = "[SECTOR3]";
var ie11 = "[PITCHER]";

我一直在尝试插入他们使用此代码

var mapping = [];

mapping.push({ ie1 : $( ".position" ).val() , ie2 : $( ".name" ).val() , ie3 : $( ".town" ).val() , ie4 : $( ".region" ).val() , ie5 : $( ".country" ).val() , ie6 : $( ".hoghos" ).val() , ie7 : $( ".tourist" ).val() , ie8 : $( ".sector1" ).val() , ie9 : $( ".sector2" ).val() , ie10 : $( ".sector3" ).val() , ie11 : $( ".pitcher" ).val() });

然后将使用它更新页面上的文本

$(".CYB").html(function(index,text){
    for (var i = 0; i < mapping.length; i++) {
        text = text.split(mapping[i][0]).join(mapping[i][1]);
    }
    return text;
});

此后,变量将更新为新值,因此无需刷新页面

//new vars
var ie1 = $( ".position" ).val();
var ie2 = $( ".name" ).val();
var ie3 = $( ".town" ).val();
var ie4 = $( ".region" ).val();
var ie5 = $( ".country" ).val();
var ie6 = $( ".hoghos" ).val();
var ie7 = $( ".tourist" ).val();
var ie8 = $( ".sector1" ).val();
var ie9 = $( ".sector2" ).val();
var ie10 = $( ".sector3" ).val();
var ie11 = $( ".pitcher" ).val();

当我发出警报时,很容易看出哪里出了问题

//alert with array
alert(JSON.stringify(mapping));

输出

[{ "ie1":"","ie2":"","ie3":"","ie4":"","ie5":"","ie6":"","ie7":"","ie8":"","ie9":"","ie10":"","ie11":""}]

它将变量视为文本而不是加载它们的值,但我不知道如何解决这个问题。

总而言之,我正在尝试达到一个阶段,可以将数据输入到文本框中并让它更新页面上的内容。如果我想进行更改,我希望能够通过保存我输入的变量并将它们加载到数组中来完成此操作,而无需刷新页面。

如果有任何帮助,我将不胜感激。

Old JsFiddle

编辑:

我稍微更新了它,现在工作得更正确了...但是我需要从单击事件中取出第一个变量,并且当我这样做时它们没有加载。如果您能帮助我找到此问题的解决方案,我将不胜感激。

为了子孙后代:我改变了

mapping.push({ ie1 : $( ".position" ).val() , ie2 : $( ".name" ).val() , ie3 : $( ".town" ).val() , ie4 : $( ".region" ).val() , ie5 : $( ".country" ).val() , ie6 : $( ".hoghos" ).val() , ie7 : $( ".tourist" ).val() , ie8 : $( ".sector1" ).val() , ie9 : $( ".sector2" ).val() , ie10 : $( ".sector3" ).val() , ie11 : $( ".pitcher" ).val() });

mapping.push([ ie1 , $( ".position" ).val() ],[ ie2 , $( ".name" ).val() ],[ ie3 , $( ".town" ).val() ],[ ie4 , $( ".region" ).val() ],[ ie5 , $( ".country" ).val() ],[ ie6 , $( ".hoghos" ).val() ],[ ie7 , $( ".tourist" ).val() ],[ ie8 , $( ".sector1" ).val() ],[ ie9 , $( ".sector2" ).val() ],[ ie10 , $( ".sector3" ).val() ],[ ie11 , $( ".pitcher" ).val() ]);

New JsFiddle

最佳答案

出现新问题的原因是您的 [PLACEHOLDER] 文本在您第一次单击“生成”时被覆盖。因此,任何 future 的点击都没有要替换的文本。我建议您通过将 spans 与类一起使用来解决这个问题。我已经在你的 jsfiddle 上模拟了一个解决方案.

关于javascript - 返回前用变量填充 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116261/

相关文章:

html - 宽度比父级 div 大 100%

JavaScript 获取 href onclick

javascript - 将变音符号传递给 jQuery UI 对话框

javascript - iframe 中的附加字符串被复制

javascript - 使用选项卡时错误地应用了 Bootstrap 轮播事件类

java - 如何使用 Spring Boot Async 提交表单而不重新加载页面?

javascript - jqueryui.com 上的日期选择器示例不起作用

javascript - 使用 `once` 回调和事务检索 Firebase 值

javascript - AJAX + RAILS ShowTooltip 窗口效果问题...Rails 中的路由错误

javascript - jQuery 查找内容并突出显示元素