我有以下可用的代码。这将显示一个下拉列表,并获取要显示的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“选项,它将获得html文件"FML_shares.html”如果他们选择"GBP“,那么它应该得到"GBP_shares.html”,最后,如果选择没有任何与它相关的html文件,那么应该显示错误,如“没有这样的文件”等。
为了让它更复杂一点,我不想要整个文件。文件中有一个表,我希望从表的第一行获取前五列数据,并单独显示这些数据。
感谢你的帮助,我已经寻找了一段时间的解决方案,但没有成功,我的JQuery/Javascript知识非常基础!(我以前也用PHP做过类似的事情,但这里不能这么做)
发布于 2012-09-29 18:20:13
对于第一点,你可以直接运行
$('#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-29 18:23:06
您似乎只需要绑定到正在创建的dropdown的.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
缓存。
https://stackoverflow.com/questions/12655229
复制