我在编写一些 Javascript 时遇到了一些麻烦。代码的目的如下:
- 从提供的 .TXT 文件中读取 SKU 列表
- 在每一行拆分数据
- 对于每个对象,在提供的 JSON api 上进行查找以获取有关 SKU 的信息
- 将此信息输出到 HTML 表中。
目前,我可以按预期工作,但是,它似乎不会阻止我尝试在for
循环后运行的任何其他 Javascript。
这是我的代码示例
<script type="text/javascript">
//Set API Address
var api = "/api/AthenaService.svc/GetProductBySku/";
//Get Array of SKUs from TXT file
$.get('/Views/Locale/promoPages/LandingPages/TradeList/TradeList.txt',function(data){
//Split File into lines
var line = data.split('\n');
for(i=0;i<line.length;i++)
{
$.getJSON(api + line[i] , function(data1) {
// Request complete, NOW we can use the data we got!
$('.tListBody').append('<tr><td>' + data1.Title + '</td><td align="center">' + data1.Platform.Button + '</td></tr>');
});
};
});
$(document).ready(function() {
$('#searchLoading').fadeOut('slow');
$('#showForm').fadeIn('slow');
$('input#tradeSearch').blur(function() {
$('input#tradeSearch').quicksearch('table#Searchable tbody tr');
});
});
</script>
我遇到的问题是,document ready 中的所有内容似乎都不起作用。
我已经更新了上面的代码以反映下面的建议修复。似乎代码运行良好,但是我的快速搜索 jQuery 插件似乎没有触发。我想知道这是否与它应该搜索的 TR 元素是新创建的 DOM 元素有关?
任何帮助将不胜感激。
更新:
问题已经解决了!稍微阅读一下 Quicksearch.js 插件的文档,我发现可以在我的循环中手动将条目添加到快速搜索缓存中。这解决了这个问题。
下面更新了代码;
$(document).ready(function () {
var api = "/api/AthenaService.svc/GetProductBySku/";
//Get Array of SKUs from TXT file
$.get('/Views/Locale/promoPages/LandingPages/TradeList/TradeList.txt', function (data) {
//Split File into lines
var line = data.split('\n');
var qs = $('input#tradeSearch').quicksearch('.TheList tbody tr');
for (i = 0; i < line.length; i++) {
$.getJSON(api + line[i], function (data1) {
// Request complete, NOW we can use the data we got!
$('.tListBody').append('<tr><td>' + data1.Title + '</td><td align="center">' + data1.Platform.Button + '</td></tr>');
qs.cache();
});
};
});
});
感谢大家的帮助和建议