字符串比较 JavaScript 中的失败


String Compare Failure in javascript

 <div id="error" class="modal fade">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title" id="modal_head">Activation</h4>
                </div>
                <div class="modal-body">

                    **<p id="error_record"> <?php echo $msg; ?> </p>**           ''line 1

                    <p class="text-warning"><small id="direction"></small></p>
                </div>
                <div class="modal-footer" align="center">
                    <button onclick="redirect()" type="button" class="btn btn-primary" >Okay</button>
                </div>
            </div>
        </div>
    </div>

我需要将div 中的字符串与 id "error_record" 进行比较,如下所示:

<script>
        window.onload=function()
        {
            $("#error").modal('show');
        }
        function redirect(){
            var val=document.getElementById("error_record").innerHTML;      ''line2
            alert(val);                                                      ''line 3
            if(val=="Invalid Link"||val=="Invalid Link."||val=="Empty Link")
            {
                window.location="index.php";
            }
            if(val=="Activation Successful"||val=="Your Account is already activated.")
            {
                window.location="dashboard.php";
            }
        }
    </script>

但它在比较中总是返回 false,在注释行 2 中。

注释行 3 中的警报给出相同的字符串,但比较返回 false。

它与第 1 行中的回声有关吗?

我有 $msg="空链接";

你有空格,我写了下划线<p id="error_record">_<?php echo $msg; ?>_</p>,这就是为什么你的弦不相等。要么删除空格,要么在内部HTML上使用.trim()功能来删除空格。

而不是使用(双等号)==

使用以下代码所示indexOf() != -1,让我知道它是否有效:

if(val.indexOf("Activation Successful")!=-1||val.indexOf("Your Account is already activated.")!=-1) {
    window.location="dashboard.php";
}