2009-06-26 123 views
0

我有一个JavaScript函数代码,我想提醒。使用JQuery通过javascript读取XML

function msgalert(x,y) 
{ 
tempstr = x.value 
if(tempstr.length>y) 
{ 
    alert(c_AcknowledgementText); 
    x.value = tempstr.substring(0,y); 
    } 
} 

现在我有一个XML下面的格式:

<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <key name="c_ContactUsHeading">Contact Us</key> 
    <key name="c_AcknowledgementText">Comments can not be more than 250 characters.</key> 
</root> 

我想的JavaScript代码,以便在上述警告显示的信息可以从上面的XML密钥名“c_AcknowledgementText”读取。

我想用下面的代码,但未能解决问题,可以请你看看

<script language="javascript" type="text/javascript"> 
function msgalert(x,y) 
{ 
tempstr = x.value 
    if(tempstr.length>y) 
    { 
      $(document).ready(function(){ 
       $.ajax({ 
        type: "GET", 
        url: "../includes/ResourceData.xml", 
        dataType: "xml", 
        success: function(xml) {      
         $(xml).find('key').each(function(){ 
          var title = $(this).find('name').text();       
          ); 
         });     
        } 
       }); 
      }); 
} 
} 
     </script> 

一些,我需要修改上面的函数,这样我可以用它来给警报价值通过XML。

回答

2

我实在无法理解你正在试图做什么,但是这个代码是错误的:

var title = $(this).find('name').text(); 

在这一点上,this是要循环通过电流<key>元素。为了得到这个元素的name属性的值,你需要做的是:

var title = $(this).attr('name'); 

然后得到这个元素的内容,你会怎么做:

var title = $(this).text(); 

在针对您的意见,我想你想要这样的:

var title = $(this).find('key[name=c_AcknowledgementText]').text(); 
alert(title); 
+0

我想匹配如果属性名称=“c_AcknowledgementText”那么它应该显示在属性c_AcknowledgementText中给出的文本的警报消息。我该怎么做? – 2009-06-26 11:50:05

1

因此,有一些不同的方式去了解这个问题,你可以

$(xml).find([name='key']).each(function(){ 
    alert($(this).text());             
}); 

这将查找名称属性等于'key'的所有元素,然后它会使用该元素的文本发布警报。