Использование JQuery для чтения XML через JavaScript - PullRequest
0 голосов
/ 26 июня 2009

У меня есть код функции JavaScript, где я хочу предупредить.

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 ]

2 голосов
/ 26 июня 2009

Я не могу понять, что вы пытаетесь сделать, но этот код неверен:

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);
1 голос
/ 26 июня 2009

Так что есть несколько разных способов решения этой проблемы, вы могли бы

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

Находит все элементы, для которых атрибут name равен 'key', а затем отправляет предупреждение с текстом этого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...