如何将所有匹配元素视为一组?

时间:2016-07-18 21:28:12

标签: javascript dom

有没有办法转换,调整,处理包含相同类的元素?

<div class="f">fgfgh</div>
<div class="f">dfg</div>
<div class="f">qzer</div>

<script> 
function _(c){ 
    var x = document.getElementsByClassName(c);
    return x; 
};
_("f")[all_of_them_not_0_1].innerHTML = "changed"; 
</script>

我绝对可以循环使用它们,但这不是我想要的。

3 个答案:

答案 0 :(得分:5)

这不是关于JavaScript,而是关于DOM API。

不,在DOM API中没有基于集合的变异操作(例如,设置innerHTML)。你必须循环遍历元素(或者在幕后使用为你做的事情,比如jQuery)。

答案 1 :(得分:0)

你能否为他们添加一个类,如class =&#34; f更改&#34;然后用css:

.f.changed:after {
  content:'changed';
  display:block;
  /* any other stylings you need for this */
}

然后,当您想要切换文本时,您需要做的就是添加或删除该类?不知道你有什么反对循环,但这是一种方式。

答案 2 :(得分:0)

一个想法是将var gd = document.getElementById('tester'); var layout = { xaxis: { showgrid: true, tickformat: "%H:%M:%S", }, margin: { l: 40, b: 40, r: 30, t: 20 }, hovermode: 'x', }; var draw = function(data, layout) { Plotly.newPlot(gd, data, layout, { showLink: false, displaylogo: false }); }; var dataurl = 'https://gist.githubusercontent.com/fhurta/6c53839fbc91a363d62966a972a5e4a2/raw/2cd735f0b024e496164dacec92fa4a7abcd5da2e/series.csv'; Plotly.d3.csv(dataurl, function(rows) { var data = [{ type: 'scatter', x: rows.map(function(row) { return new Date(row['Time']); }), y: rows.map(function(row) { return row['Value1']; }), line: { width: 1 } }]; draw(data, layout); });方法添加到<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> <div id="tester" style="width:600px;height:300px;"></div>。但是,请注意!!

Element.prototype

然后:

HTMLCollection.prototype

演示: https://jsfiddle.net/iRbouh/a7yuzz3z/