使用WYSIWYG类型的网页创建器链接到各种数据库,从客户端服务器获取信息。
一个变量用于频率,有三个可能的输出,MO,YR或空白。
这是我的一个地方的HTML(这可以多次显示,只需用下一个数字切换1)
<span style="font-size:24px;"><strong>$@@1_Price</strong></span><span style="font-size:18px;" class="rateFrequency">@@1_rateFrequency</span>
我希望使用javascript将MO或YR替换为/月和/年,并在填空时不执行任何操作。
javascript知识不多,所以不知道从哪里开始。正在思考这方面的事情,但不确定我是朝着正确的方向前进还是从这里前进的地方
<script>
window.onload=function change() {
var frequency = document.getElementsByClassName("rateFrequency");
if (condition1) {
block of code to be executed if condition1 is true
} else if (condition2) {
block of code to be executed if the condition1 is false and condition2 is true
} else {
block of code to be executed if the condition1 is false and condition2 is false
}
}
change();
</script>
任何可以帮助我前进的事情都会很棒。谢谢!
答案 0 :(得分:2)
假设我已正确理解您的要求,无论HTML文档中有多少“rateFrequency”跨度,以下代码都可以解决问题。
window.onload = function(e) {
function changeFreq() {
var els = document.getElementsByClassName("rateFrequency"),
len = els.length;
while (len--){
els.item(len).innerText = els.item(len).innerText.replace('MO', '/month').replace('YR', '/year');
}
}
changeFreq();
};
此处不需要if
。如果跨度中包含的文本是“MO”,则第一个replace
将用'/ month'替换它,第二个替换将不会执行任何操作。如果范围中包含的文字为“YR”,则第一个replace
将不会执行任何操作,第二个replace
将替换为“/年”。如果跨度中的文本不是“MO”或“YR”,则replace
都不会执行任何操作,并且跨度中的文本将保持不变。
答案 1 :(得分:-1)
我已经让codepen让你看看。它使用jquery,我建议你使用它,因为它太棒了!
如果您有疑问,请告诉我: Example
$(document).ready(function(){
$.each($('.rateFrequency'),function(){
frq = $(this).text();
if (frq=='MO'){
console.log('REPLACE MONTH');
$(this).text('/month');
}else if(frq=='YR'){
console.log('REPLACE YEAR');
$(this).text('/year');
}
})
})