1
我有一个string
,我分裂使用string.split(' ');
为了将字符串转换为数组。3维阵列Javascript
假设我有这两个表,table1
和table2
。
<table border="1" id="table1">
<tr>
<th colspan="2">Image One</th>
</tr>
<tr>
<td style="width:40%;"><img src="airplane.jpg" alt="Image 1"></td>
<td>
<dl>
<dt>airplane</dt>
<dt>flight</dt>
<dt>travel</dt>
<dt>military</dt>
<dt>word war</dt>
<dt>GI</dt>
</dl>
</td>
</tr>
</table>
<table border="1" id="table2">
<tr>
<th colspan="2">Image Two</th>
</tr>
<tr>
<td style="width:40%;"><img src="apple.jpg" alt="Image 1"></td>
<td>
<dl id="tags">
<dt>red</dt>
<dt>apple</dt>
<dt>round</dt>
<dt>fruit</dt>
<dt>healthy</dt>
<dt>doctor</dt>
</dl>
</td>
</tr>
</table>
现在用于测试目的我有tags
对table2
的dl
的ID。
我用一个函数把这一DL
(#tags)到一个数组
function getArray(id) {
var node, list, arrValue;
array = [];
for (node = document.getElementById(id).firstChild;
node;
node = node.nextSibling) {
if (node.nodeType == 1 && node.tagName == 'DT') {
array.push(node.innerHTML);
}
}
console.log(array)
}
,以检查它,我原来string
,看是否有任何值匹配的。 但是,我将有多个DT
的string
将被检查。将所有表格添加到3d数组中是否正确,然后检查string
中的数值与3d数组?还是有更好的方法?
UPDATE
的问题是:
我最终将拥有一个充满图像和标签表。基本上我想能够搜索那些标签对我的字符串(这将分离成一个数组),然后返回字符串中标签最多的图像。我试图找出最好的方法来做到这一点。 谢谢
这看起来并不像一个很好的使用情况'
你所说的“3D阵列”是什么意思?另外,请发布你的整个'dl-to-array'函数。 – Bergi
回顾一下:你正在从一个字符串中创建一个数组,然后你想要将这些数组值与页面上已有的值进行比较?你打算使用jQuery吗? –
回答
你不会使用三维阵列,但仅一个二维一个与表和他们的标签。或者,如参宿一已经提到的,甚至更好的查找对象:
要获得字符串中的大多数代码表,你现在可以使用这样的功能,它返回标签occurence排序各自tableids:
来源
2012-12-19 20:15:41 Bergi
感谢您的输入,我将如何使用这个与我的HTML? –
如果您检查控制台,我将所有内容移到了jsfiddle.net/J4kF9/上,但出现错误 –
感谢提示,我修复了这些错误。更新到http://jsfiddle.net/J4kF9/1/,输出表示表2中的句子比表1中的更多标签 – Bergi
而不是一个数组,我会使用
Object
来存储标签列表,其中键是标签和值是不相关的。如果您使用的是
array.indexOf()
,这会给您O(1)查找来检查该列表中是否存在其他字符串,而不是O(n)查找。下面的函数将查找页面上的每个DT,然后将包含每个DT文本的映射的对象返回到其父DL的ID。
或者,jQuery中(与混合效率在一些纯JS):
来源
2012-12-19 19:34:57 Alnitak
我猜测值应该是包含标签的表格,因为OP似乎在搜索它们。 – Bergi
@Bergi如果你喜欢,是的,如果每个标签只能出现在一个表中,那么你可以使用这些值来表示哪一个。 – Alnitak
@Alnitak你能举个例子吗? –
相关问题