JQuery replaceWith()只在if条件下工作一次

时间:2016-02-11 05:08:08

标签: jquery replacewith

我正在尝试使用JQuery replaceWith()方法根据文本框中的条件替换某些html。但它只会工作一次,无论文本框的值如何,它总是返回相同的消息“Replacement Effective”,这是我在下面的if-else语句中的第一个值。我需要它根据文本框的值返回不同的消息。

我的html如下:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
    jQuery(function ($) {
        function changeCAT() {
            var choice = $('#choice').val()
            if (choice = 'Effectiveness') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Effective!</div>'); }
            else if (choice = 'Safety') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Safe!</div>'); }
            else if (choice = 'Efficiency') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Efficient!</div>'); }
            else { alert('Please make a valid choice'); }
        };
        $('#btn').click(changeCAT);
    });

</script>
</head>
<body>
<form>
<select id="choice">
    <option value="effectiveness">Effectiveness</option>
    <option value="safety">Safety</option>
    <option value="efficiency">Efficiency</option>
</select>
<input id="btn" type="button" value="Change Div"></form>
<div id="avg_scores">
    Original Div</div>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

应该使用双等于==进行比较,而不是单个等于=这是一个赋值而不是比较,如果条件如下:

&#13;
&#13;
jQuery(function($) {

  function changeCAT() {

    var choice = $('#choice').val()

    if (choice == 'effectiveness') {
      $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Effective!</div>');
    } else if (choice == 'safety') {
      $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Safe!</div>');
    } else if (choice == 'efficiency') {
      $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Efficient!</div>');
    } else {
      alert('Please make a valid choice');
    }
  }

  $('#btn').click(changeCAT);

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="choice">
  <option value="effectiveness">Effectiveness</option>
  <option value="safety">Safety</option>
  <option value="efficiency">Efficiency</option>
</select>
<input id="btn" type="button" value="Change Div" />
<div id="avg_scores">Original Div</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

请使用==而不是=运算符,并且您还需要在检查时处理区分大小写,而不是在if条件中使用“有效性”使用“有效性”。

jQuery(function ($) {
    function changeCAT() {
        var choice = $('#choice').val()
        if (choice == 'effectiveness') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Effective!</div>'); }
        else if (choice == 'safety') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Safe!</div>'); }
        else if (choice == 'efficiency') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Efficient!</div>'); }
        else { alert('Please make a valid choice'); }
    };
    $('#btn').click(changeCAT);
});

答案 2 :(得分:0)

  jQuery(function ($) {
    function changeCAT() {
        var choice = $('#choice').val()
        if (choice == 'effectiveness') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Effective!</div>'); }
        else if (choice == 'safety') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Safe!</div>'); }
        else if (choice == 'efficiency') { $('#avg_scores').replaceWith('<div id = "avg_scores">Replacement Efficient!</div>'); }
        else { alert('Please make a valid choice'); }
    };
    $('#btn').click(changeCAT);
});

==用于comparasion&amp; = assifnment。还将其与选项值属性

进行比较