使用jQuery操作包含XML的变量?

时间:2009-09-28 21:12:18

标签: javascript jquery xml ajax

我正在使用AJAX来接收XML响应,然后我需要对其进行操作。通过使用jQuery的上下文选项,我可以从XML数据中进行选择,但我仍然无法写入。

$('blah', xml)

选择xml就好了,但是

$('blah', xml).removeClass( 'myClass' )

似乎对xml变量没有任何作用!如何实现我正在寻找的功能?

示例:

var data = null;

$(document).ready(function(){
$.ajax({
   type:"GET",
   url:"blah/blah.jsp",
   success:function(msg)
   {
      data = msg;
      init();
   }
});

function init()
{
   $('#myElement', data).removeClass('hidden');//removeAttr('class') also fails
}

示例xml文件:

<root>
<div>
<!--lots of content -->
</div>
<div>
<p id = "myElement<->" class = "hidden">
  Test!
</p>
</div>
</root>

1 个答案:

答案 0 :(得分:1)

这适合我。

<html>
<head>
  <title>Test Page</title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    <script type="text/javascript">
    $(function()
    {
    var data = null;
    $.ajax({
        type:"GET",
        url:"sample.xml",
        dataType: 'xml',
        success:function(msg)
        {
           init( $(msg) );
        }
    });

    function init( $xml )
    {
      var $myElement = $xml.find( '#myElement' );
      $myElement.removeAttr( 'class' );
      console.log( $myElement );
    }
    });
    </script>
</head>

<body>

</body>
</html>

这是sample.xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
<div>

</div>
<div>
<p id = "myElement" class = "hidden">
  Test!
</p>
</div>
</root>

因此请确保您使用"xml"作为dataType选项请求,并且您的JSP页面返回具有正确Content-Type标头(text / xml)的内容