2009-06-26 107 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'的所有元素,然後它會使用該元素的文本發佈警報。