使用文本框获取所有属性值

时间:2013-01-28 06:14:25

标签: javascript jquery ajax

我的xml看起来像这样:

<oneday>
      <team1 id="1" team="India">
           <team2 id="2" team="gujarat">
                  <team3 id="3" team="guj11"></team3>
           </team2>
      </team1>
</oneday>

这是我的代码我做了什么?:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
var xml;
$.get(
    "cricket.xml",  
    function(data) { xml=data; },
    "html"
);
function get_list(){

    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $title = $xml.find($("#select").val());
    $("#result").html($title.text());
}
</script>
</head>
<input type="text" id="select">
<input type="button" name="button" value="Search" onclick="get_list()" >
<div id="result">
</div>
</html>

我想输出:
如果我进入文本框印度然后显示古吉拉特邦和guj11
进入古吉拉特邦然后输出是Guj11

3 个答案:

答案 0 :(得分:0)

$title = $xml.find($("#select").val());

您在$ xml对象中找到'#select'的值。这是错误的

你可以这样解析你的xml ..

$team1 = $(xmlDoc).find("team1");
alert($team1.attr("id"));
alert($team1.attr("team"));

答案 1 :(得分:0)

您可以找到如下输入项:

$title = $xml.find('[team="'+$('#select').val()+'"]');
然后找到他的孩子使用:

$nodes = $title.find('*');

这是我的新get_list功能:

function get_list(){
  xmlDoc = $.parseXML( xml ),
  $xml = $( xmlDoc ),
  $title = $xml.find('[team="'+$('#select').val()+'"]');
  $nodes = $title.find('*');
  var result='';
  $nodes.each(function(){
    result += $(this).attr('team');
    result += ' ';
  });
  $("#result").html(result);
}

jsfiddle在这里http://jsfiddle.net/g9mYk/

答案 2 :(得分:0)

试试这个

function get_list(){
    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $title = $xml.find('[team="'+$('#select').val()+'"] *');
    var str='';
    $title.each(function(){
        str+=$(this).attr('team')+' ';
    });
    $("#result").html(str);
}

此外,您可以更改xml以方便

<oneday>
      <team id="1" team="India">Test
           <team id="2" team="gujarat">
                  <team id="3" team="guj11">Hello</team>
           </team>
      </team>
</oneday>

因为为每个标记team1,team2,team3定义了id。