0

我有这个代码来调用 AJAX:

function loadXml(b,c)
{
var xmlhttp;
var x,xx,i;
var txt = "";
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    x=xmlhttp.responseXML.documentElement.getElementsByTagName("POST");
    for (i=0;i<x.length;i++)
      {
      xx=x[i].getElementsByTagName("TITLE");
        {
        try
          {
          txt=txt + "<span class='nphead'>" + xx[0].firstChild.nodeValue + "</span><div class='divider'><div class='divtop'></div><div class='divbot'></div></div><br>";
              }
        catch (er)
          {
          txt=txt + "<span class='nphead'> </span><div class='divider'><div class='divtop'></div><div class='divbot'></div></div>";
          }
        }
      xx=x[i].getElementsByTagName("CONTENT");
        {
        try
          {
          txt=txt + "<p class='pcontent'>" + xx[0].firstChild.nodeValue + "</p>";
          }
        catch (er)
          {
          txt=txt + "<p> </p><div class='divider'><div class='divtop'></div><div class='divbot'></div></div>";
          }
        }
      }
    document.getElementById(c).innerHTML=txt;
    }
  }
xmlhttp.open("GET",b,true);
xmlhttp.send();
}

如果函数是onLoad="loadXML('content.xml', 'divId')" And 例如,这是我的 content.xml:

<BLOG>
    <POST>
        <TITLE><![CDATA[<a class="normal" href="">1st title</a>]]></TITLE>
        <CONTENT>
        1st
        </CONTENT>
    </POST>

    <POST>
        <TITLE><![CDATA[<a class="normal" href="">2nd title</a>]]></TITLE>
        <CONTENT>
        2nd
        </CONTENT>
    </POST>

    <POST>
        <TITLE><![CDATA[<a class="normal" href="">3rd title</a>]]></TITLE>
        <CONTENT>
        3rd
        </CONTENT>
    </POST>
</BLOG>

例如<POST>,我的 XML 中有大约 10 个标签,所以这里是: 我的问题:我怎样才能只显示第二个<POST>标签而不显示其他标签?

我已经尝试使用 DIV 包装内容<POST>并尝试了此 jQuery 代码,但这没有奏效:

$(window).load(function() {
$('div.bpost').filter(
    function(){
        return !$('div.bpost').eq(2);
    }).css('display','none');
});

**而且似乎 JavaScript也不适用于 XML 中的 ajax 内容。**

4

2 回答 2

0

试试这个 http://www.javascriptkit.com/dhtmltutors/ajaxgetpost3.shtml

var xmldata=mygetrequest.responseXML ;
   var rssentries=xmldata.getElementsByTagName("POST")[1];
于 2013-08-12T12:36:59.380 回答
0

尝试这个。它的工作。

function loadXMLDoc(b,c)
{
var xmlhttp;
var txt,x,xx,i;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    txt="<table border='1'><tr><th>Title</th><th>Artist</th></tr>";
    x=xmlhttp.responseXML.documentElement.getElementsByTagName("POST");

      txt=txt + "<tr>";
      xx=x[1].getElementsByTagName("TITLE");
        {
        try
          {
          txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
          }
        catch (er)
          {
          txt=txt + "<td> </td>";
          }
        }
      xx=x[1].getElementsByTagName("CONTENT");
        {
        try
          {
          txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
          }
        catch (er)
          {
          txt=txt + "<td> </td>";
          }
        }
      txt=txt + "</tr>";

    txt=txt + "</table>";
    document.getElementById('divId').innerHTML=txt;
    }
  }
xmlhttp.open("GET","content.xml",true);
xmlhttp.send();
}
于 2013-08-12T16:13:37.833 回答