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你能舉個例子嗎? –
相關問題