使用Jquery Mobile在XML节点中查找文本

时间:2014-04-01 05:57:43

标签: jquery jquery-mobile jquery-xml

我正在尝试解析xml并将其文本与输入字段进行比较,但是它在这里不起作用的是我试过的代码..

 $('#finish').click(function() {
 var email = document.getElementById('email').value
    $.ajax({
        type: "GET",
        url: "test.xml",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('child[name="Email"]').each(function(){
                var i = $(this).attr('text');
                if(i == email)
                alert('email already registered');
                else{
                activity.SubmitData();
                }

            });
        }
    });
});

HTML

<input type="text" name="email" id="email" placeholder="Your Email..">
<button id="finish" >Register</button>

XML

<reg>
  <user>
    <Name> myName</Name>
    <Email> myEmail </Email>
    <Date> 22/12/2013 </Date>
  </user>
</reg>

2 个答案:

答案 0 :(得分:0)

您需要使用==进行比较:

if(i == email)

此外,您的输入没有text属性,因此var i = $(this).attr('text');将无法按预期工作。您可能希望获得其类型:

var i = $(this).attr('type');

或者如果您想获取其文字,请使用.text()

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

如果要从文本中删除尾随空格,则可以使用$.trim()

var i = $.trim($(this).text());

答案 1 :(得分:0)

尝试

$('#finish').click(function () {
    var email = document.getElementById('email').value
    $.ajax({
        type: "GET",
        url: "test.xml",
        dataType: "xml",
        success: function (xml) {
            //check if any Email element has the entered email as its value
            var valid = $(xml).find('Email').filter(function () {
                return $.trim($(this).text()) == email
            }).length == 0;
            //if valid submit the data
            if (valid) {
                activity.SubmitData();
            } else {
                alert('email already registered');
            }
        }
    });
});