Javascript 需要在innerHTML元素中将完整数组显示为字符串

Javascript 需要在innerHTML元素中将完整数组显示为字符串,javascript,arrays,string,Javascript,Arrays,String,好的,这必须有一个简单的解决方案,但我打破了我的头在这一个 我有一个js代码,它按类从我的HTML中提取ID号。它将所有数据存储在一个数组中。我检查了数组是否未定义,是否为空。太好了 现在我需要将这个ID数组显示到HTML元素中。完整数组应显示为逗号分隔的字符串 相关的代码段: function makelink(){ var idArray = $(".result"); document.getElementById("link&

好的,这必须有一个简单的解决方案,但我打破了我的头在这一个

我有一个js代码,它按类从我的HTML中提取ID号。它将所有数据存储在一个数组中。我检查了数组是否未定义,是否为空。太好了

现在我需要将这个ID数组显示到HTML元素中。完整数组应显示为逗号分隔的字符串

相关的代码段:

    function makelink(){    
    var idArray = $(".result");
    document.getElementById("link").innerHTML = idArray;
    }
    //The result in HTML = [object Object]
当我执行以下操作时,它完全按照我想要的方式工作(当然,除了我不能像这样将数组硬编码到代码中)

我阅读了至少4个关于Stackoverflow的其他类似问题,例如,基于我尝试的和:

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

    var idArray = $(".result");
    idArray.toString();
但是我不知道如何让它为我的代码工作。我不需要提醒或console.log。我需要我的结果以HTML格式输出。请帮助。

执行以下操作:

function makelink() {  
    var idArray = ["123", "124", "125", "126"];
    document.getElementById("link").innerHTML = JSON.stringify(idArray);
}

显示的不是数组,而是DOM元素的jQuery对象。您可能需要该函数。但是这个函数本身还不够,您仍然需要获取结果对象的值,或者html,但是这部分是最简单的

function makelink(){    
    var idArray = $(".result").map(function(item) { 
        return item.val(); 
    }).get();
    document.getElementById("link").innerHTML = idArray;
}
您可以尝试以下方法:

function makelink(){  
  var idArray = [];
  $(".result").each(
    function(){
      idArray.push($(this).text())
    }
  );
  document.getElementById("link").innerHTML = idArray.join(', ');
}

你能做到
console.log(idArray)
就在
var-idArray=$(“.result”)
并向我们显示响应?您需要只显示数组中的数字(例如:123 124 126)还是整个数组(例如:[“123”、“124”、“125”、“126”)
$(“.result”)
是元素的集合。是否要映射这些元素的id?可以尝试此
document.getElementById(“link”).innerHTML=Object.values(idArray)
@WillBlack如果无法在jQuery对象上工作,则值本身就是objectsjQuery
map()
不会返回数组,您需要链接其他方法以获得数组
(get()或toArray())
的结果。理论上,这不如使用函数编程函数(如map)有效,因为这将占用0大小的数组,推送会使阵列增长,在内存中,这会使阵列在每次超出其分配的内存空间时重新分配。JS引擎可能会对其进行优化,因此可能无关紧要。而且,在大多数情况下使用不可变数据也是一种很好的做法。不管怎样,好的简单解决方案,没有冒犯。
function makelink(){  
  var idArray = [];
  $(".result").each(
    function(){
      idArray.push($(this).text())
    }
  );
  document.getElementById("link").innerHTML = idArray.join(', ');
}