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');
        });