#javascript #image #getelementbyid
#javascript #изображение #getelementbyid
Вопрос:
У меня возникли небольшие проблемы с пониманием этой вещи, поэтому я подумал, что это могло бы помочь опубликовать его здесь. Итак, вот оно.
Что у меня есть: 5 разных изображений в 5 разных ячейках таблицы скрипт, который я опубликую ниже.
Что я хочу: использовать javascript…
document.GetElementById("image ID").style.visibility='visible/hidden'
… по истечении заданного времени, но вместо идентификатора изображения появляется строка, которая получает идентификатор изображения, и, прежде чем кто-либо что-либо скажет, я не использую «» для строки, которая находится внутри (). Что-то вроде…
var n=1;
function picID() {
pictureID="pic" n;
n=n 1;
}
… и таким образом, при каждом вызове этой функции мы получаем идентификатор элемента « pic1
«, « pic2
«, « pic3
» и т.д.
В чем моя проблема: эта чертова штука не будет работать. Стиль изображения остается таким же, как я определил его в теге img. ( style="visibility:hidden"
)
Все идентификаторы изображения находятся в теге img, как и должно быть.
Вот весь код:
<script>
var m=1;
function Show() {
if (m==6) {m=1;}
feat="feat" m;
**document.getElementById(feat).style.visibility="visible";**
m=m 1;
setTimeout('Show()', 3000);
}
window.onload = Show;
</script>
<script>
var k=1;
function Hide() {
if (k==6) {k=1;}
feate="feat" k;
**document.getElementById(feate).style.visibility="hidden";**
k=k 1;
setTimeout('Hide()', 3000);
}
window.onload = Hide;
</script>
Я разделил код, чтобы его было легче обнаружить.
Из того, что я видел, единственной проблемой является жирная строка в коде. Я протестировал все остальное, заменив document.getElementById
на document.write
, поэтому я вижу, что пользовательская строка идентификатора работает нормально. Это. И все остальное тоже.
Есть предложения? Спасибо.
Комментарии:
1. Вы переопределяете
onload
функцию Show функцией Hide…2. Это не связано, но вы должны передавать функции
setTimeout
, а не строки.setTimeout(Show, 3000);
иsetTimeout(Hide, 3000);
.
Ответ №1:
Попробуйте установить k = 0; вместо k = 1;
Похоже, что при загрузке страницы у вас есть функции show () и hide (), работающие на одном и том же элементе. Выполнение вышеуказанного приведет к запуску функции hide () для элемента ПЕРЕД элементом, на котором выполняется функция show().
Ответ №2:
Этот код будет продолжать выполняться в цикле. потому что setTimeout() вызывается каждый раз. Должен быть случай, когда оно не вызывается, например, если m<6 вызывает его, иначе не