我尝试根据点击的按钮显示和隐藏多个div,但没有任何反应在Chrome Inspector中我收到错误:" Uncaught TypeError:无法读取属性'显示&# 39;未定义"
提前致谢!
触发并阻止:
echo '<button class="more" onClick="toggleLyrics()">Show lyrics <i class="fa fa-chevron-down"></i></button>';
echo '<div class="lyricsBox" style="display: block;"><pre>' . $row['lyrics'] .'</pre></div>';
脚本:
<script>
function toggleLyrics(){
var lyricsMore = document.getElementsByClassName('more');
var lyricsBox = document.getElementsByClassName("lyricsBox");
var displaySetting = lyricsBox.style.display;
if (displaySetting == 'block') {
lyricsBox.style.display = 'none';
}
else {
lyricsBox.style.display = 'block';
}
}
</script>
答案 0 :(得分:2)
getElementsByClassName
返回您通过索引访问的集合,以便找到找到的DOM元素。
您可以单独执行此操作:
lyricsBox[0].style.display
或典型的for
循环。
另一个选项,如果您只需要匹配的第一个元素,则使用querySelector
代替。
var lyricsBox = document.querySelector(".lyricsBox");
这将返回CSS选择器匹配的第一个元素。它还具有比.getElementsByClassName
更好的浏览器支持。
它有一个对应的.querySelectorAll()
,也可以返回一个集合。
答案 1 :(得分:1)
#include <stdio.h>
#include <ctype.h>
int main(void){//unused argv
FILE *pFile;
int ch, prev = 0;
int totalCharLength = 0;
int wrap_size = 60;
//char newline[] = "newline";
pFile = fopen("test5.txt","r");
if(pFile != NULL){
while((ch = fgetc(pFile)) != EOF){
if(isspace(ch))
ch = ' ';
if(prev == ' ' && ch == ' ')
continue;//unified
prev = ch;
putchar(ch);
if(++totalCharLength == wrap_size -1){//-1 : include newline
putchar('\n');//printf("%s", newline);
totalCharLength = 0;
}
}
fclose(pFile);//put inside if-block
}
return 0;
}
返回一个元素集合,首先需要从集合中获取元素。
getElementsByClassName