请看一下 Fiddle example 。我正在使用ajax脚本来解析JSON文件。 JSON文件中的一个项目(B项)包含单词" Sodium"在它的表中,我可以使用此脚本打印表:
$.ajax({
url: "url.json",
success: function (data) {
$(data.query.results.json.json).each(function (index, item) {
var title = item.title;
var table = item.table;
if (table.indexOf("Sodium") >= 0){
$('.'+ title+'table').html(''+table+'')
}
});
},
error: function () {}
});
因为它可以找到" Sodium"在表格中,我想知道是否可以找到该单词所在的td
,然后找到其下一个最接近的td
以提取钠量,在这种情况下为{{1} }?像1200 mg
之类的东西会起作用吗?但是如何选择选择器呢?
JSON文件
.closest('td').text();
表格结构:
[{"title":"A","table":"<table class=\"tablesorter\"><thead><tr><td >Ingredient<\/td><td >Amount<\/td><td>% Daily Value**<\/td><\/tr><\/thead><tbody><tr><td>Calories<\/td><td>10<\/td><td> <\/td><\/tr><tr><td>Total Carbohydrate<\/td><td>2g<\/td><td><1<\/td><\/tr><tr><td>Vitamin C<\/td><td>110mg<\/td><td>4<\/td><\/tr><tr><td>Potassium<\/td><td>235mg<\/td><td>6<\/td><\/tr><tr><td>Omega 6<\/td><td>1100mg<\/td><td>*<\/td><\/tr><tr><td>Vitamin B<\/td><td>1200mg<\/td><td>*<\/td><\/tr><tr><td>Vitamin E<\/td><td>300mg<\/td><td>*<\/td><\/tr><\/tbody><\/table>"},{"title":"B","table":"<table class=\"tablesorter\"><thead><tr><td >Ingredient<\/td><td >Amount<\/td><td>% Daily Value**<\/td><\/tr><\/thead><tbody><tr><td>Calories<\/td><td>10<\/td><td> <\/td><\/tr><tr><td>Total Carbohydrate<\/td><td>2g<\/td><td><1<\/td><\/tr><tr><td>Vitamin C<\/td><td>110mg<\/td><td>4<\/td><\/tr><tr><td>Potassium<\/td><td>245mg<\/td><td>6<\/td><\/tr><tr><td>Fish Oil<\/td><td>1100mg<\/td><td>*<\/td><\/tr><tr><td>Sodium (from Kitchen Salt)<\/td><td>1200mg<\/td><td>*<\/td><\/tr><tr><td>Vitamin E<\/td><td>300mg<\/td><td>*<\/td><\/tr><\/tbody><\/table>"}]
答案 0 :(得分:2)
您只需使用jQuery :contains()
选择器搜索已解析的HTML:
$.ajax({
url: "url.json",
success: function (data) {
$(data.query.results.json.json).each(function (index, item) {
var title = item.title;
var table = item.table;
if (table.indexOf("Sodium") >= 0) {
$('.'+ title+'table').html(''+table+'');
alert($('.'+title+'table').find('td:contains(Sodium)').next().html());
}
});
},
error: function () {}
});
该提醒通知会在文本中包含td
的内容之后提醒Sodium
的内容。