我正在从一个页面读取一个表格行,然后尝试将单元格内容放入第二页的各种元素中。我有点工作,但我想(a)做得好,(b)摆脱我拾取的额外标签。 所以我的方法是......
$(document).ready(function() {
$(function(){
$('#result_row').load('schedule.html #schedule_list tr:eq(1)',function(){
var date = $('td:eq(0)',this);
$('#date').html(date);
var title = $('td:eq(0)',this);
$('#title').html(title);
var speaker = $('td:eq(0)',this);
$('#speaker').html(speaker);
});
});
});
然后我有
<div class= "upcoming">
Next Talk: <span id="speaker"></span> - <span id="title"></span> (<span id="date"></span>)
</div>
<span id="result_row"></span>
所以这很有效,但我有一种明显的感觉,我做得不好(或错误),因为我是一个jQuery新手。特别是,空<span id="result_row">
似乎不正确。更重要的是,它还会将<td>
标记导入<span>
元素,我希望避免这些标记。所有对innerHTML的尝试都失败了(例如var date = $('td:eq(0)',this).innerHTML;
感谢您的帮助,
尼克
编辑:所以现在我可以这样做三次
var date = $('td:eq(0)',this).text();
$('#date').text(date);
避免获取<td>
代码。或者我可以这样做
var data = $.find('td',this);
$('#date').html(data[0]);
$('#speaker').html(data[1]);
$('#title').html(data[2]);
我认为看起来更清楚(我假设最后三行可以在一个中完成)。可悲的是.text()似乎不起作用,所以我在输出中遇到了<td>
。
答案 0 :(得分:1)
如果您只想获取td
内的数据,请使用.html()
或.text()
。例如:
var date = $('td:eq(0)',this).html();
在正确执行方面,从页面加载html(抓取)很少正确执行。您应该从其他来源获取数据,例如json提供的&amp;由服务器等格式化。但如果你必须这样做,你的代码对我来说很好看:))
答案 1 :(得分:0)
就效率而言,我就是这样做的:
$(document).ready(function() {
var resultRow = $('#resultRow');
$.ajax({
url: 'schedule.html'
})
.done(function(response) {
var context = $('#schedule_list tr:eq(1)'),
data = context.find('td:eq(0)');
$('#date, #title, #speaker').html(data).appendTo(resultRow);
});
});
我注意到你有2 document.ready
秒。删除了其中一个。