我已经翻找过,发现了一些有用的帖子,可以使用键值对数组/对象在jquery中进行查找/搜索/替换,
但我无法让它发挥作用,
这是该网站的测试网址:
http://www.larryadowns.com.php5-1.dfw1-2.websitetestlink.com/
正如您所看到的,它是一个包含帖子信息的博客Feed。我正试图以日期为目标月份,并在西班牙月份进行搜索并替换每个月份。
这里是javascript,它全部包含在jQuery(文档).ready()...
var monthMap = {
"January" : "Enero",
"February" : "Febrero",
"March" : "Marzo",
"April" : "Abril",
"May" : "Mayo",
"June" : "Junio",
"July" : "Julio",
"August" : "Agosto",
"September" : "Septiembre",
"October" : "Octubre",
"November" : "Noviembre",
"December" : "Diciembre"
};
// sift thru the post-info, replacing only the month with the spanish one.
$(".post-info .date").text(function(index, originalText) {
var moddedText = '';
for ( var month in monthMap ) {
if (!monthMap.hasOwnProperty(month)) {
continue;
}
moddedText = originalText.replace(month, monthMap[month]);
// moddedText = originalText.replace( new RegExp(month, "g") , monthMap[month] );
console.log("month : " + month);
console.log("monthMap[month] : " + monthMap[month]);
}
console.log('-------------------');
console.log('index : ' + index);
console.log("monthMap : " + monthMap);
console.log("originalText : " + originalText);
console.log("moddedText : " + moddedText);
return moddedText;
});
但是唉,.replace或.replace与RegEx都没有真正取代任何东西。 我哪里做错了? ty再次堆叠。
答案 0 :(得分:2)
不太确定原因,但似乎您的代码在随后的几个月内将moddedText
返回原始版本。因此,它只是正确地取代了12月。
我使用了稍微不同的方法,但它应该产生你想要的东西。
$(".post-info .date").text(function(index, originalText) {
for ( var month in monthMap )
{
if (originalText.indexOf(month) > -1)
{
return originalText.replace(month, monthMap[month]);
}
}
return originalText;
});
检查此jsFiddle以获取完整代码和演示。