Javascript如何比较两个字符串

时间:2012-03-19 14:43:57

标签: javascript ajax

这是Javascript函数。请解释如何在Javascript中比较两个字符串。

   <head>
    <script type="text/javascript">
/*javascript function*/ 
    function ajax(str)
    {
    if (str.length==0)
      {
      document.getElementById("res").innerHTML="";    
      return;
      }
      if(str=="Select City")
      {
      alert("Please Select a City");
      }
    document.getElementById("res").innerHTML=="";
    var url="code1.php?q="+str+"&r"+Math.random();
    var obj;
    try{
    obj=new ActiveXObject(Microsoft.XMLHTTP);
    }
    catch(e)
    {
        try
        {
        obj=new XMLHttpRequest();
        }
        catch(e)
        {
        alert("Your browser not suport ajax");
        }
    }
    obj.open('Get',url,true);
    obj.send(null);
    obj.onreadystatechange=function()
    {
    if(obj.readyState==4)
    {
    document.getElementById("res").innerHTML=obj.responseText;
    }
    }
    }
    </script>
    </head>

    <body>

    <select onchange="ajax(this.value)" name="sel" id="btn"><option>Dharmashala</option><option>Manali</option><option>Shimla</option></select>
    <div id="res"></div>
    </body>
    </html>

但它没有用,请建议我采取适当的方法来做到这一点。

3 个答案:

答案 0 :(得分:5)

===用于字符串比较

if(str === "Select City") {
    alert("Please Select a City");`
}

答案 1 :(得分:1)

如何在JavaScript中比较字符串?使用==运算符表示等效,使用> / <表示字母差异。

在你的代码中,这一行似乎有点无用:

document.getElementById("res").innerHTML=="";

你不想在这里做作业(=)吗?

答案 2 :(得分:0)

我很确定它不起作用,因为你的this上下文不正确。 this.value正在尝试调用value元素的select而不是所选的option。试试这个:

window.addEventListener('load', function(){
  var select = document.getElementById('btn');
  var selected = select.options[select.selectedIndex].value;
}, false);
window.addEventListener('change', function(selected) { changeHandler(selected); }, false);

function changeHandler(selected) {
  // run your ajax() function
}

另外,请务必在每个value元素上添加option