javascript - filtering and rendering of arrays
仅有的幸福
仅有的幸福 2017-06-26 10:52:24
0
4
947

var data = [{

    label: '分类一',
    value: '0'
}, {
    label: '分类二',
    value: '1'
}, {
    label: '分类三',
    value: '2'
}, {
    label: '分类四',
    value: '3'
}, {
    label: '分类五',
    value: '4'
}, {
    label: '分类六',
    value: '5'
}]

<p class="text">

<span>0</span>
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>

</p>

Please tell me how to render the corresponding label value in dom based on the value in the data in the simplest way? ? The data is uncertain, there may be more than ten or twenty

in it
仅有的幸福
仅有的幸福

reply all(4)
Ty80

The method above can be done, but this is equivalent to registering a variable every time, adding a span node to .text every time, and manipulating the DOM, which causes a lot of overhead! I personally recommend using the following method.

var opText= document.querySelector('.text'),var _text="";
data.forEach(function(item){
    //把每一次遍历的label加上节点,再储存在_text上。
    _text += '<span>'+item.label+'</span>';
});
//最后直接把_text赋值到opText.innerHTML上。
opText.innerHTML=_text ;
Ty80
var container = document.querySelector('.text')
data.forEach(function(item){
    var span = document.createElement('span')
    span.innerHTML = item.label
    span.setAttribute('value', item.value)
    container.appendChild(span)
})
给我你的怀抱

The methods above are all feasible, but the first two methods have their own advantages and disadvantages in performance under Firefox and Chrome. Now the common practice is to create a new blank document fragment (DocumentFragment).

const $container = document.querySelector('.text');
const fragment = document.createDocumentFragment();
data.map(item => {
    let span = document.createElement("span");
    span.textContent = item;
    fragment.appendChild(span);
});
$container.appendChild(fragment);
typecho
var data = [{
    label: '分类一',
    value: '0'
}, {
    label: '分类二',
    value: '1'
}]

// 根据value获取dataList中对应的项
function getLabelByValue(dataList, value) {
  return dataList.find(function (item) {
    return item.value === value // 这里使用的强等,根据情况可选 ==
  })
}

// 省略DOM操作
let label = getLabelByValue(data, '0') // 分类一
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template