0

我有以下工作代码。这将显示一个下拉列表,并获取要显示的 html 文件:

   $.getJSON('json/shares.json', function(data) {
      var items = [];

      $.each(data.Shares, function(key, val) {
        items.push('<option id="' + val.shareID+ '">' + val.shareID+ '</option>');
      });

      $('<select/>', {
        'id': 'shares',
        html: items.join('')
      }).appendTo('#shares');
    });
    </script>

    <script type="text/javascript">

    $.get('lon_shares.html', function(data){
        $(data).appendTo('#shares');
    });

    </script>   

我需要将其修改为一些额外的内容。

首先,我需要在做出选择时自动提交下拉菜单。

然后我需要它来获取与选择相关的 html 文件,例如,如果他们选择“FML”选项,如果他们选择“GBP”,它将获得 html 文件“FML_shares.html”,那么它应该获得“GBP_shares.html”最后,如果选择没有任何与之相关的 html 文件,则应显示错误,例如“没有此类文件”等。

只是为了让它更复杂一点,我不想要整个文件。该文件中有一个表格,我想从表格的第一行获取前五列数据的数据并单独显示这些数据。

感谢您的帮助,我一直在寻找解决方案一段时间但没有成功,我的 JQuery/Javascript 知识非常基础!(我过去用 PHP 做过类似的事情,但这不是这里的选择)

4

2 回答 2

0

那么对于第一点你可以运行

$('#shares').on('change', function(){
    var val = $(this).val();
    //submit another ajax request with this value, and get the relevant page, then you'd just need to parse it for the appropriate content from that page.
});

如果您想解析返回的页面并只获取其中的一部分,我们需要知道标记结构。

于 2012-09-29T18:20:13.077 回答
0

似乎您只需要绑定到.change您正在创建的下拉列表的事件即可提交,您可以使用.get. 您可以使用 jQuery 来解析 html。它做得很好:

.appendTo('#shares')
.change(function () {
   $.get($(this).val() + '_shares.html)
      .done(function (html) {
         var $table = $(html).find("table tr:first td").slice(0,5);
      })
      .fail(function () { /* no such file */ });
});

此代码未经测试,但希望您可以按照示例进行操作。还要注意GET缓存。

于 2012-09-29T18:23:05.777 回答