在变量中分隔两个字符串项以进行检索和单独显示

时间:2014-03-05 14:22:58

标签: javascript

我有一个返回名称和URL的查询。我遍历我的结果并打印出每一行。我正在努力将URL分配给href字段。如果我只返回查询中的URL,我可以完成这项工作。

然而,我正在尝试查询名称和URL然后将URL分配给href,并将名称分配给查询数组结果中的文本字段。我看了this,但我不确定如何继续。

var Results = (Fish(Query).select("LATINNAME","URL"));

var outputc = '<ul data-role="listview" data-inset="true">';
for (LATINNAME in Results) {
    outputc += ' <li><a href="'+URL+'">' + Results[LATINNAME] + '</a></li> ';
}
outputc += '</ul>';

如果我只是通过从查询中删除latinname将其输出到我的变量中,我可以使URL工作

     outputc += ' <li><a href="'+  Results[LATINNAME]+'">' + '</a></li> ';

结果的数组输出

[Array[2], Array[2], Array[2], Array[2], Array[2], Array[2]]
0: Array[2]
0: "Acipenseridae"
1: "Endpoints1.html"
length: 2

1: Array[2]
0: "Cottidae"
1: "Endpoints2.html"
length: 2

2: Array[2]
0: "Gadidae"
1: "Endpoints3.html"
length: 2

输出C - 目前我只是将网址添加为字符串以将其打印出来

 <ul data-role="listview" data-inset="true">
  <li><a href="function URL() { [native code] }">Acipenseridae,Endpoints.html</a></li>
  <li><a href="function URL() { [native code] }">Cottidae,Endpoints.html</a></li> 
  <li><a href="function URL() { [native code] }">Gadidae,Endpoints.html</a></li>
</ul> 

2 个答案:

答案 0 :(得分:0)

您无法正确获得结果。事实上,由于我不喜欢您的原始HTML字符串,我将使用DOM方法执行此操作:p

var Results = Fish(Query).select("LATINNAME","URL");
var output = document.createElement('ul');
output.setAttribute("data-role","listview");
output.setAttribute("data-inset","true");
var l = Results.length, i, link;
for( i=0; i<l; i++) {
    link = output.appendChild(document.createElement('li'))
                              .appendChild(document.createElement('a'));
    link.href = Results[i][1];
    link.appendChild(document.createTextNode(Results[i][0]));
    // hey! built-in anti-XSS!
}
// find somewhere and .appendChild(output);

答案 1 :(得分:0)

看起来你在Array(of Arrays)中找到值时遇到了麻烦。

如果查看Results,您将看到您没有处理一维数组,而是使用二维数组。正确的代码是这样的:

var LATINNAME = 1; // Key where it is allocated (just to help)
var Results = (Fish(Query).select("LATINNAME","URL"));

var outputc = '<ul data-role="listview" data-inset="true">';
for (var k in Results) {
    var result = Results[k];
    outputc += ' <li><a href="'+URL+'">' + result[LATINNAME] + '</a></li> ';
}
outputc += '</ul>';

请注意,您无法访问这样的散列键:Results[LATINNAME]如果您未声明LATINNAME变量值(在这种情况下,它充当变量)。相反,如果密钥LATINNAME存在,请使用:Results.LATINNAME,但它存储在您的日志中可以看到的密钥1中。