Javascript 尝试使用jQuery从表中提取数据
为了说明这个问题的背景,我正在尝试从一个使用表格制作的html网站中提取数据。我已经设法拔出了大部分,但只有一件事困扰着我的大脑。也许我需要休息一下 我把所有的代码都放在一个小提琴里,可以在这里找到 基本上,我是想把文章的日期和作者从那个特殊的地方拉出来。因此,我循环遍历其中的元素,并使用某些关键字获取包含日期和作者的元素。使用font:n子项是不可能的,因为并非每个页面中的所有标记计数都不相同。(您可以在jsfiddle表中看到两个空的,这是一个错误) 对于日期,我制作了一个月名数组,很容易完成 对于作者来说,我正在检测该元素文本的第一个单词“By”,它也在发挥作用 然而,我面临的问题是,当我在“.each”函数之外使用该元素时,该函数返回的值为“undefined”。下面是我正在使用的jQuery代码Javascript 尝试使用jQuery从表中提取数据,javascript,jquery,Javascript,Jquery,为了说明这个问题的背景,我正在尝试从一个使用表格制作的html网站中提取数据。我已经设法拔出了大部分,但只有一件事困扰着我的大脑。也许我需要休息一下 我把所有的代码都放在一个小提琴里,可以在这里找到 基本上,我是想把文章的日期和作者从那个特殊的地方拉出来。因此,我循环遍历其中的元素,并使用某些关键字获取包含日期和作者的元素。使用font:n子项是不可能的,因为并非每个页面中的所有标记计数都不相同。(您可以在jsfiddle表中看到两个空的,这是一个错误) 对于日期,我制作了一个月名数组,很容易完
function monthNames(string, keywords) {
return string.split(/\b/).some(Array.prototype.includes.bind(keywords));
}
var months = ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."];
jQuery('td').find('font').each(function() {
var curtext = jQuery(this).text();
var has_date = monthNames(curtext, months);
if (has_date == true) {
var post_date = curtext;
jQuery('#current-date-text').html(post_date);
}
});
jQuery('#current-outside-date').html(post_date);
jQuery('td').find('font').each(function() {
var curtext = jQuery(this).text();
var i = curtext.indexOf(' ');
var first_word = curtext.substring(0, i);
if (first_word == 'By') {
var author = curtext;
var author = author.substr(author.indexOf(" ") + 1);
jQuery('#current-author-text').html(author);
}
});
jQuery('#current-outside-author').html(author);
任何帮助都将不胜感激 您需要在函数之外定义变量(您有两个循环,第二个循环试图引用在其范围之外定义的变量)。在这里,我组合了两个循环,删除了许多
var
——只需定义一次,然后就可以引用实际变量
最后,jQuery无法找到('td')
,除非它实际上位于
标记中。我没有你引用的函数,所以我加入了一个forEach循环,在这个月进行测试
jQuery(文档).ready(函数(){
var月数=[“1月”、“2月”、“3月”、“4月”、“5月”、“6月”、“7月”、“8月”、“9月”、“10月”、“11月”、“12月];
var post_date,作者,curtext,has_date,first_单词
jQuery('td font')。每个(函数(){
curtext=jQuery(this.text();
has_date=false
curtext.split(“”).forEach(w=>{
如果(包括(w)个月)的日期为true;
})
如果(有日期){
发布日期=短文本;
jQuery(“#当前日期文本”).html(发布日期);
}
jQuery(“#当前外部日期”).html(发布日期);
curtext=jQuery(this.text();
var i=短文本索引(“”);
第一个单词=curtext.substring(0,i);
如果(第一个单词=='By'){
作者=curtext;
author=author.substr(author.indexOf(“”+1);
jQuery(“#当前作者文本”).html(作者);
}
});
jQuery(“#当前外部作者”).html(作者);
})
这里有一些文字
这里又是一些随机文本
二○○一年七月十六日
按作者姓名
全局声明变量,即:在每个循环之外。