Необходимо отобразить полный массив в виде строки во внутреннем элементе HTML - PullRequest
0 голосов
/ 02 августа 2020

Хорошо, у этого должно быть простое решение, но я ломаю голову над этим ...

У меня есть код js, который берет идентификационные номера из моего HTML по классам. Он хранит все в виде массива. Я проверил, что массив не неопределен и не пуст. Sofar так хорош.

Теперь мне нужно, чтобы этот массив идентификаторов отображался в элементе HTML. Полный массив должен выглядеть как строка, разделенная запятыми.

Соответствующий фрагмент кода:

    function makelink(){    
    var idArray = $(".result");
    document.getElementById("link").innerHTML = idArray;
    }
    //The result in HTML = [object Object]

Когда я делаю следующее, он работает именно так, как я хочу (за исключением того, что Я, конечно, не могу жестко закодировать массив в такой код)

    function makelink(){  
    var idArray = ["123", "124", "125", "126"];
    document.getElementById("link").innerHTML = idArray;
    }
    //The result in HTML = [123,124,125,126]

Я прочитал по крайней мере 4 других похожих вопроса о Stackoverflow, например Что означает [object Object]? и преобразовать массив javascript в строку , и на основе этого я пробовал:

    document.getElementById("link").innerHTML = idArray.join();

, а также:

    var idArray = $(".result");
    idArray.toString();

, но я не мог понять, как заставить его работать для моего кода. Мне не нужны предупреждения или console.log. Мне нужно, чтобы мой результат был выведен в HTML. Пожалуйста, помогите.

Ответы [ 3 ]

0 голосов
/ 02 августа 2020

Вы показываете не массив, а объект jQuery элемента DOM. Вам может понадобиться функция map . Но одной этой функции недостаточно, вам все равно нужно будет получить значение объекта результата или html, но эта часть самая простая.

function makelink(){    
    var idArray = $(".result").map(function(item) { 
        return item.val(); 
    }).get();
    document.getElementById("link").innerHTML = idArray;
}
0 голосов
/ 02 августа 2020

Вы можете попробовать это:

function makelink(){  
  var idArray = [];
  $(".result").each(
    function(){
      idArray.push($(this).text())
    }
  );
  document.getElementById("link").innerHTML = idArray.join(', ');
}
0 голосов
/ 02 августа 2020

Сделайте это ::

function makelink() {  
    var idArray = ["123", "124", "125", "126"];
    document.getElementById("link").innerHTML = JSON.stringify(idArray);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...