0

过去,这里的程序员在为我解决问题方面非常有帮助,所以我想我会问一个 Ajax 问题。这可能是一个简单的修复,但我是 Ajax 的新手。

如果结果是短语“未找到”,我想做的是将 responseText 的样式更改为红色。否则文本将是黑色的。这是我正在使用的脚本:

 <script type="text/javascript">
  <!-- 
  function newXMLHttpRequest() 
  {
     var xmlreq = false;
     if (window.XMLHttpRequest) 
     {
        xmlreq = new XMLHttpRequest();
     } 
        else if (window.ActiveXObject) 
     {
        try 
        {
           xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
        }
           catch (e2) 
           {
              alert("Error: Unable to create an XMLHttpRequest.");
           }
      }
        return xmlreq;
  }
  function getLocation(location) 
  {
     var getLocation= newXMLHttpRequest(); // sending request
     getLocation.open("GET", "/PP?PAGE=GETLOCATIONNAME&ROUTINGNUM=" + location, false);
     getLocation.send(null); // getting location
     document.getElementById("location_div").innerHTML = getLocation.responseText;
  }
  //-->
 </script>

这是HTML:

...
<table>
    <tr>
        <td class="ajax_msg">
         <div id="location_div"><div>       
        </td>
    </tr>
</table>
...
4

2 回答 2

1

您应该对这些样式使用 css:

JS:

if (reponseText == "NOT_FOUND") 
   document.getElementById("location_div").className = "error";
else
   document.getElementById("location_div").className = "success";

CSS:

.error
{
  color: red;
}
.success
{
  color: black;
}

编辑:将 .class 更正为 .className(使用 jquery 会更容易)

于 2010-08-08T20:48:34.893 回答
0

老实说,jQuery 是处理 AJAX 调用的最佳方式。它还会大大缩短您的代码!

头部

...
<script type="text/javascript" src="js/jquery.1.4.2.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
      $.get('/PP', { PAGE: 'GETLOCATIONNAME', ROUTINGNUM: location }, function(data) {
          if(data == "NOT_FOUND") {
              $('#location_div').addClass('error');
          } else {
              $('#location_div').addClass('success');
          }
      });
  });
</script>

然后您可以使用与 gustavogb 相同的 CSS。
现在,这可能与您希望它做的有点不同,但正如您所见,jQuery 显着缩短了 AJAX 调用的代码量。另外,我不确定变量“位置”的来源,但我包括在通话中。

祝你好运,如果您需要更多帮助,可以在jQuery.com上阅读更多内容。

于 2010-08-08T21:45:18.400 回答