Javascript 如何筛选表、在json数据中查找匹配项并添加相应的链接
我想筛选表的第二列,在我的配置文件中找到匹配的条目,并使用attr'href',$link将名称设置为相应的链接 我试过用几种不同的方法来做,但我似乎无法让它发挥作用 变量配置文件=[ {姓名:Susie,链接:www.google.com}, {姓名:约翰,链接:www.yahoo.com} ]; 名称 1音乐 约翰 您可以使用每个for tr和filter来检查数组中的值,如下所示Javascript 如何筛选表、在json数据中查找匹配项并添加相应的链接,javascript,jquery,html,filter,Javascript,Jquery,Html,Filter,我想筛选表的第二列,在我的配置文件中找到匹配的条目,并使用attr'href',$link将名称设置为相应的链接 我试过用几种不同的方法来做,但我似乎无法让它发挥作用 变量配置文件=[ {姓名:Susie,链接:www.google.com}, {姓名:约翰,链接:www.yahoo.com} ]; 名称 1音乐 约翰 您可以使用每个for tr和filter来检查数组中的值,如下所示 var profiles = [ {"name": "Susie", "link": "www.goog
var profiles = [
{"name": "Susie", "link": "www.google.com"},
{"name": "John", "link": "www.yahoo.com"}
];
$(document).ready(function(){
$('tr').each(function(index,item){
var value = $(item).find('td').eq(1).text();
var exist = profiles.filter(c=>c.name == value);
if(exist.length > 0){
var link = exist[0].link;
$(item).find('td').eq(1).html("<a href='"+ link + "'>" + value + "</a>");
}
})
})
变量配置文件=[
{姓名:Susie,链接:www.google.com},
{姓名:约翰,链接:www.yahoo.com}
];
$document.readyfunction{
$'tr'。每个函数索引,项{
var值=$item.find'td'.eq1.text;
var exist=profiles.filterc=>c.name==value;
ifexist.length>0{
var link=exist[0]。链接;
$item.find'td'.eq1.html;
}
}
}
名称
1音乐
约翰
以下是为您提供查询解决方案的解决方案 变量配置文件=[ {姓名:Susie,链接:www.google.com}, {姓名:约翰,链接:www.yahoo.com} ]; var getTableRows=document.querySelectorAlltbody tr; var totalRows=getTableRows.length; var i=0; 而我却在争吵{ 让name=getTableRows[i].childNodes[1].innerHTML;
forlet j=0;j只需使用jQuery,我假设您可以使用它?动态添加条目。另外,不要使用表。您应该将s与flexbox结合使用。请参见示例: 变量配置文件=[{ 姓名:苏西, 链接:http://www.google.com }, { 姓名:约翰, 链接:http://www.yahoo.com } ]; $document.readyfunction{ 对于变量i=0;i
<table id="myTable">
<thead>
<tr>
<th>#</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Susie</td>
</tr>
<tr>
<td>15</td>
<td>TEST1</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
</tr>
<tr>
<td>3</td>
<td>Test</td>
</tr>
</tbody>
JavaScript:
var profiles = [
{"name": "Susie", "link": "www.google.com"},
{"name": "John", "link": "www.yahoo.com"},
{"name": "TEST1", "link": "www.yahoo.com"}
];
var trs = document.querySelectorAll("#myTable tbody tr");
Array.from(trs).forEach(a => {
var trname = a.children[1].innerText;
var search = profiles.find(x => x.name == trname);
if (search != null) {
a.children[1].innerHTML = '<a href="' + profiles.find(x => x.name == trname).link + '">' + trname + '</a>';
a.style.display = "";
} else {
a.style.display = "none";
}
});
你能展示这些不同的方式吗?注意:你还应该在链接之前包含http://链接,否则浏览器会将链接视为一个相对url!谢谢你这么详细的回答!不幸的是,我正在使用的表已经用php动态构建,包括许多其他数据。