簡體   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