Javascript Jquery仅在第一次单击时工作,而不是在其他时间
嗨,我已经给出了代码Javascript Jquery仅在第一次单击时工作,而不是在其他时间,javascript,jquery,Javascript,Jquery,嗨,我已经给出了代码 <div class='school-name'> <select name="merry" id="exams"> <option value="test1">test1</option> <option value="test2">test2</option> <option value="test3"
<div class='school-name'>
<select name="merry" id="exams">
<option value="test1">test1</option>
<option value="test2">test2</option>
<option value="test3">test3</option>
</select>
<select name="date[year]" id="date_year">
<option value="2013">2013</option>
<option value="2014">2014</option>
<option selected="selected" value="2015">2015</option>
</select>
<button type="button" class='farji'>Click Me!</button>
</div>
<div id='myText'> hii farjiz calendar January</div>
所以,当我点击farji时,它会改变我的文本,但当再次点击时,它不会改变,请指导我如何解决这个问题。Thanx提前这是因为您的代码总是查找要替换的单词“一月”。
第一次执行代码时,它会将单词“一月”替换为“一年”。第二次单击时,找不到要替换为所选年份的单词“一月”。因此,第一次更换后不会发生任何情况。它肯定不会工作。仅当文本字符串包含
一月
时,它才会替换
return text.replace('January','anything')
这将在文本字符串中查找一月
,并替换为
任何内容
如果一月
存在
将只替换1月份一次。代码中几乎没有问题: 1) 您正在替换测试1中的“一月”,但一月不存在。 2) 在您将“一月”替换为“马里奥”后,将无法再次找到一月,因为现在有马里奥,因此它不起作用 看小提琴:“ 对于“测试1”,1月被1年取代(比如2015年) 然后在“test2”中,“2015”替换为“mario”。每个人都指出了为什么它第二次不起作用,但没有人给你一个解决方案 将“一月”包装在它自己的选择器中-然后您就可以设置它的文本,而不必担心
替换
HTML:
为了完成-您的代码看起来总是要替换单词“一月”。第一次替换后,文本将不再显示“一月”,因此替换“一月”将无效。运行时
case 'test1':
$("#myText").text(function(e, text) {
return text.replace('January', currentSelectedYear);
});
$(“#myText”)
的值是:“hii farjiz日历2015”
单击“秒”时累积
case 'test2':
$("#myText").text(function(e, text) {
return text.replace('January', 'mario');
});
$(“#myText”)
没有用于替换的'January'
。您能在jsfiddle
$('.farji').click(function(){
currentSelectedYear = $("#date_year option:selected").val();
alert(currentSelectedYear);
switch ($("#exams option:selected").val()) {
case 'test1':
$("#changeMe").text(currentSelectedYear);
break;
case 'test2':
$("#changeMe").text('mario');
break;
case 'test3':
$("#changeMe").text('popeye');
break;
}
});
case 'test1':
$("#myText").text(function(e, text) {
return text.replace('January', currentSelectedYear);
});
case 'test2':
$("#myText").text(function(e, text) {
return text.replace('January', 'mario');
});