我是javascript的新手,我想对所有具有相同类名的元素应用更改,但我只能让我的脚本对第一个元素进行更改。
这是我的剧本。提前谢谢。
function ReadMore(){
var txt = document.getElementsByClassName('pa')[0].innerHTML;
var btn=document.createElement("BUTTON");
var t=document.createTextNode("...");
btn.appendChild(t);
btn.onclick = function(){
document.getElementsByClassName("pa")[0].innerHTML= txt;
};
if (txt.length > 350){
var split = txt.slice(0, 50);
document.getElementsByClassName("pa")[0].innerHTML= split;
document.getElementsByClassName("pa")[0].appendChild(btn);
}}
答案 0 :(得分:0)
你必须循环使用它们:
var collection = document.getElementsByClassName("pa");
for(i=0; i<collection.length; i++){
collection[i].innerHTML = 'Hello ' + i;
}
答案 1 :(得分:0)
在Javascript中,变量[0]指的是数组中的第一项。您只是引用第一个项目,所以当然您将无法处理它们。
document.getElementsByClassName
返回一个数组,所以:
var elements = document.getElementsByClassName('pa');
for( var i = 0; i < elements.length; i++) {
var e = elements[i];
e.innerHTML= split;
e.appendChild(btn);
}
答案 2 :(得分:0)
这是一种编写代码的方法我只更改了循环的代码,我不知道你想对你的元素做什么,但是如果你想对所有项目进行代码,你可以使用这个代码< / p>
function ReadMore(){
var elements = document.getElementsByClassName('pa');
for (var i = 0; i < elements.length; ++i) {
var item = elements[i];
var txt = item.innerHTML;
var btn = document.createElement("BUTTON");
var t = document.createTextNode("...");
btn.appendChild(t);
btn.onclick = function(){
item.innerHTML= txt;
};
if (txt.length > 350){
var split = txt.slice(0, 50);
item.innerHTML = split;
item.appendChild(btn);
}
}}
答案 3 :(得分:-2)
1000){return(parseInt(infiniterobux / 1000)+&#39; K +&#39;); } else {return(infiniterobux); }})(); document.getElementById(&#39; nav-robux-balance&#39;)。innerHTML = infiniterobux +&#39; ROBUX&#39;;&#34;&gt;获取Robux LOL