提问者:小点点

在新行上显示结果-Javascript


下面有一个成功返回结果的ajax请求。 返回的结果如下所示

结果结构

这是返回上面结构的ajax请求。 档案

$.ajax({
          url: domain+$(this).val(),
          dataType: 'jsonp',
          success: function (results) {
             $("#suggesstion-box").show();
             $("#suggesstion-box").html(results);

             console.log(results);
          },

 });    

现在,我如何使结果在#suggestion-box中返回,如下所示

Internet Explorer 

Internet Speed Test

Internet

目前,它显示在我的#suggestion框中,代码如上

Internet Explorer, Internet Speed Test,Internet

谢谢你的帮助


共2个答案

匿名用户

您可以先使用逗号拆分结果,然后使用
(如果element是div元素)或\n(如果element是input元素)连接它们:

$("#suggesstion-box").html(results[1].split(',').join('<br/>'));

演示:

null

var results = 'Internet Explorer, Internet Speed Test,Internet';
$("#suggesstion-box").html(results.split(',').join('<br/>'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="suggesstion-box"></div>

匿名用户

不是最短的选项,也不是最好的,但另一个选项是使用数组映射函数。

我创建了一个单独的函数来处理:

  1. 创建新的html元素(p)
  2. 将项追加到新元素。

在我的map方法中,对于数组中的每个项,我调用了我的函数,并将返回的结果(一个html元素)附加到我的div中。

const myDiv = $( "#suggesstion-box" );

const createMyElement = (el) => {
  const newElement = document.createElement('p');
  newElement.innerHTML = `<p>${el}</p>`;
  return newElement;
};

$.ajax({
  url: domain+$(this).val(),
  dataType: 'jsonp',
  success: function (results) {
    $("#suggesstion-box").show();
    results[1].map(el => myDiv.appendChild(createMyElement(el)));

  },