如何有条件地更改表标记文本内容
问题描述:
我是JavaScript新手& jQuery。我想根据数组的内容有条件地更改th
文本。如何有条件地更改表标记文本内容
var categoryNames = "Category : 1~!_Basis~#Category : 2~!_QUALITÄT~#Category : 3~!_GRUNDDATEN~#Category : 4~!_DISPOSITION~#Category : 5~!_VERTRIEB~#Category : 6~!_EINKAUF~#Category : 7~!_BUCHHALTUNG~#Category : 8~!_Optionen";
var replacetext = ["_Basis","_QUALITÄT","_GRUNDDATEN","_DISPOSITION","_VERTRIEB","_EINKAUF","_BUCHHALTUNG","_Optionen" ];
var res = categoryNames.split("~#");
for (var i=0; i< res.length; i++){
var pattern = res[i];
var rep = replacetext[i];
$(function(){
alert(pattern);
var m= $('table tr th:contains("'+pattern+'")');
m.text(rep);
});
}
上面的代码是刚刚更换了这是最后一个模式 “类别:8〜_Optionen!” 由 “_Optionen”。请建议。
答
不要在for循环中包含document.ready。
var categoryNames = "Category : 1~!_Basis~#Category : 2~!_QUALITÄT~#Category : 3~!_GRUNDDATEN~#Category : 4~!_DISPOSITION~#Category : 5~!_VERTRIEB~#Category : 6~!_EINKAUF~#Category : 7~!_BUCHHALTUNG~#Category : 8~!_Optionen";
var replacetext = ["_Basis", "_QUALITÄT", "_GRUNDDATEN", "_DISPOSITION", "_VERTRIEB", "_EINKAUF", "_BUCHHALTUNG", "_Optionen"];
var res = categoryNames.split("~#");
for (var i = 0; i < res.length; i++) {
var pattern = res[i];
var rep = replacetext[i];
alert(pattern);
//var m = $('table tr th:contains("' + pattern + '")');
//m.text(rep);
alert(rep)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答
我不确定你想要做什么通过包装替换模式在jQuery对象中的代码块。 for循环可以简单地进行替换。
for (var i=0; i< res.length; i++)
{
var pattern = res[i];
var rep = replacetext[i];
alert(pattern);
var m = $('table tr th:contains("'+pattern+'")');
m.text(rep);
}
接受的答案,如果它的帮助:)。快乐编码。 –