2016-06-27 3 views
0

Я хочу заменить gif-файл на javascript. Я нахожу метод ниже. Есть ли способ разместить тег javascript перед тегом img?Заменить изображение на javascript

<img class="myImg" src="compman.gif" width="107" height="98"> 

<script> 
    document.getElementsByClassName("myImg")[0].src = "hackanm.gif"; 
</script> 
+0

Почему вы хотите? Вы * можете * размещать код везде, где хотите. Вам просто нужно убедиться, что строка кода, ищущая элемент HTML, не выполняется до тех пор, пока этот элемент не будет существовать. Какова проблема, которую вы пытаетесь решить здесь? Как это не работает? – David

+0

Оборудуйте свой текущий javascript с помощью '$ (document) .ready (function() {});' (см. Https://learn.jquery.com/using-jquery-core/document-ready/), а затем вы можете разместите его в любом месте на странице. –

ответ

1

Нельзя безопасно манипулировать страницей, пока документ не будет готов. Используя jQuery $(document).ready(), он будет ждать, пока страница будет загружена и готова к обработке перед выполнением (независимо от того, где она находится на странице). Пример:

<script> 
    $(document).ready(function() { 
     document.getElementsByClassName("myImg")[0].src = "hackanm.gif"; 
    }); 
</script> 
<img class="myImg" src="compman.gif" width="107" height="98"> 

Вы могли бы также тогда рычаги селекторы внутри JQuery (например $(".class"), где класс является ваш класс, или $("#id") где идентификатор идентификатор) и измените код на:

<script> 
    $(document).ready(function() { 
     $(".myImg").attr('src',"hackanm.gif"); 
    }); 
</script> 
<img class="myImg" src="compman.gif" width="107" height="98"> 

А дальше вас может даже сохранить его в переменной, если вы хотите изменить его позже в javascript!

<script> 
    $(document).ready(function() { 
     var myImg = $(".myImg"); 
     var newImg = "hackanm.gif"; 
     myImg.attr('src', newImg); 
    }); 
</script> 
<img class="myImg" src="compman.gif" width="107" height="98"> 

Надеюсь, это поможет вам узнать несколько новых трюков внутри javascript! Счастливое кодирование!

More Info

0

Я считаю, что главной заботой OP была вспышка старого изображения, прежде чем он заменяется на JavaScript. Я предлагаю вам добавить строку CSS, чтобы ваш элемент изображения был явно скрыт, а затем своп + показать с помощью JavaScript.

<style> 
    .myImg {visibility: hidden;} 
</style> 

<img class="myImg" src="compman.gif" width="107" height="98"> 

<script> 
    var imgReplace = document.getElementsByClassName("myImg")[0]; 
    imgReplace.src = "hackanm.gif"; 
    imgReplace.style.visibility = "visible"; 
</script> 
Смежные вопросы