繁体   English   中英

选择框更改时的通过值

[英]Passing value when select box change

我有一个关于将select选项的值传递到XML解析器的问题。 首先看一下我的代码:

的HTML

<table id="ProfileList">
    <tr>
        <td>session</td>
        <td>timestamp</td>
    </tr>
</table>
<select>
  <option value="none">--select user--</option>  
  <option value="user20">user20</option>
  <option value="user30">user30</option>
  <option value="user40">user40</option>
  <option value="user50">user50</option>
</select>

如您所见,我有一个带有5个选项的选择框,只有最后四个很重要。

Java脚本

$('select').change(function() {
    var user = $(this).val();
    alert($(this).val());

    //Sample XML    
    var user20 = "<?xml version='1.0' ?><results><row><session>21</session><time>2014-02-28 21:12:12</time></row><row><session>176763</session><time>2014-03-01 14:04:35</time></row></results>";

    var user30 = "<?xml version='1.0' ?><results><row><session>26</session><time>2014-02-28 21:12:12</time></row><row><session>176763</session><time>2014-03-01 14:04:35</time></row></results>";

    //Parse the givn XML
    var xmlDoc = $.parseXML( user ); 

    var $xml = $(xmlDoc);


    var $row = $xml.find("row");
    $row.each(function(){

        var session = $(this).find('session').text(),
            time = $(this).find('time').text();
        $("#ProfileList" ).append('<tr><td>' +session+ '</td>' + '<td>' +time+ '</td></tr>');

    });
});

我想要的是将我的select选项的值用作XML解析器的输入。 如果运行此代码,则会收到XML无效的错误消息。

澄清一下:如果我设置一个固定值,那么它可以工作:

var xmlDoc = $.parseXML( user20 ); 

但是,如果我想将其设置为变量,它将不起作用:

var xmlDoc = $.parseXML( user ); 

谁能告诉我这是为什么,也许我该如何解决?

可以在此处找到演示

我将使用一个包含XML示例的对象,并通过该对象的属性名称访问每个XML,请参见http://jsfiddle.net/3po6xgmt/

$('select').change(function() {
    var user = $(this).val();
    alert($(this).val());

    //XML samples
    var samples = {
        user20 : "<?xml version='1.0' ?><results><row><session>21</session><time>2014-02-28 21:12:12</time></row><row><session>176763</session><time>2014-03-01 14:04:35</time></row></results>",
        user30 : "<?xml version='1.0' ?><results><row><session>26</session><time>2014-02-28 21:12:12</time></row><row><session>176763</session><time>2014-03-01 14:04:35</time></row></results>"
    };

    //Parse the given XML
    var xmlDoc = $.parseXML( samples[user] ); 

    var $xml = $(xmlDoc);


    var $row = $xml.find("row");
    $row.each(function(){

        var session = $(this).find('session').text(),
            time = $(this).find('time').text();
        $("#ProfileList" ).append('<tr><td>' +session+ '</td>' + '<td>' +time+ '</td></tr>');

    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM