2017-09-22 129 views
0

我是Javascript新手,我試圖從類「copyme」中複製所有span元素中的文本,按相反順序對它們進行排序,然後連接字符串一起。一旦我這樣做,我想添加包含此信息的div標籤段落與id="copyhere"循環訪問HTML元素數組並添加到數組

這是我到目前爲止有:當我這樣做

var copy= document.getElementsByClassName("copyme").innerHTML; 
    var arr = []; 
    for (x = 0 ; x < copy ; x++){ 
     arr.push(x); 
    } 
    arr.concat().reverse(); 
    document.getElementById('copyhere').innerHTML = arr; 

什麼也沒有發生。

關於如何進行的任何想法?謝謝。

回答

1

在這裏你去:

var copy = document.getElementsByClassName("copyme"); 
    var arr = []; 
    for (x = 0 ; x < copy.length ; x++){ 
     arr.push(copy[x].innerHTML); 
    } 
    arr.reverse(); 
    document.getElementById('copyhere').innerHTML = arr.join(""); 

如果您有任何疑問,請隨時問:)

+0

謝謝你訴很多! – Reed

+0

歡迎您:) – Taurus

+0

簡單地粘貼代碼並不能真正幫助人們理解正在發生的事情,也許有關您爲修復代碼所做的一些解釋?例如,當您檢查每個項目時,innerHTML需要發生,因爲getElementsByClassName返回一個數組/項目列表... – twoleggedhorse

0

var copy= document.getElementsByClassName("copyme"); 
 
    var arr = []; 
 
console.log(copy) 
 
    for (var i = 0 ; i < copy.length ; i++){ 
 
     arr.push(copy.item(i).innerHTML); 
 
    } 
 
    arr.concat().reverse(); 
 
    document.getElementById('copyhere').innerHTML = arr;
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
</head> 
 
<body> 
 
    <div class="copyme">1</div> 
 
    <div class="copyme">2</div> 
 
    <div class="copyme">3</div> 
 
    <div id="copyhere"></div> 
 
</body> 
 
</html>

+0

您並未連接陣列。 – Taurus

+0

好抓! :) toString隱式調用,當瀏覽器試圖呈現它。這導致使用默認(',')分隔符連接數組的所有元素。 –

+0

是的,'toString'將被調用,但最好使用像'join'這樣的方法,因爲它可以讓你指定分隔符,這是更好的IMO。只是想指出,「。」結尾而不是「:)」可能使它聽起來令人反感:) – Taurus

0

這可能有助於

var copy= document.getElementsByClassName("copyme"); 
    var arr = []; 
    for (var x = 0 ; x < copy.length ; x++) { 
    arr.push(copy[x].innerHTML); 
    } 
    document.getElementById('copyhere').innerHTML = arr.reverse().toString();