2013-02-13 3 views
1

У меня есть div, в котором я динамически добавляю изображение.Как изменить исходный URL-адрес изображения, динамически добавленного в div?

div.append('<img class="prod48" src="' + url + '" />'); 

Теперь url устанавливается focusout из текстового поля в зависимости от текста в нем. Поскольку функция append будет добавляться, как я должен просто изменить этот url и не добавлять другое изображение в div? В первый раз, когда вызывается focusout, я должен иметь возможность добавлять и восстанавливать время обновления URL-адреса.

+0

по url Вы имеете в виду src? –

+0

да. Я устанавливаю как src = 'url' –

ответ

3

Если вы хотите обновить элемент изображения после его добавления в документ, вам нужно будет каким-то образом ссылаться на него.

Несколько идей приходят на ум сразу:

  1. Дайте изображению уникальный идентификатор, а затем использовать это:

    # First, change the html to include an id 
    div.append('<img id="abcdef1234" class="prod48" src="' + url + '" />'); 
    
    #... 
    # Later, grab the image by its id and change the source url 
    var img = document.getElementById('abcdef1234'); 
    img.src = newUrl; 
    
  2. С другой стороны, построить изображение динамически в первый раз, и сохранить элемент в переменной:

    # First, create an element, and hold it in a variable: 
    var img = document.createElement('img'); 
    img.className = "prod48"; 
    img.src = url; 
    # Now append it to the div: 
    div.append(img); 
    
    #... 
    # Later, we still have that element, so we can just change the source URL: 
    img.src = newUrl; 
    
+0

Большое спасибо. Но как насчет замены уже существующего изображения. Пожалуйста, помогите мне с этим. Проблема с моим делом будет добавлена, добавит изображение, мне нужно что-то заменить. –

+1

@NihalSharma делает .innerHTML(), а не .append(), чтобы заменить –

+0

Awesome. Иногда мы пропускаем основные вещи. Большое спасибо. Добавьте это и в ответ. –

0

предоставить идентификатор для изображения и этот код может помочь вам ..

$("img").attr("src", "/img/circleGraph/circle"); 
0

Если вы используете JQuery вы могли бы сделать что-то вроде этого:

var div = $('div'); 

div.append("<img src='"+url+"' />"); 

div.find("img").attr("src", newUrl); 
+0

всякий раз, когда нажимается фокус, добавляется append и каждый раз добавляется изображение. Мне нужно заменить/обновить существующее изображение. Таким образом, любое условие if-else с изображением будет выполнять требования. –

2

HTML:

<input type="text" id="url"> 
<div id="image_div"> 
    Will append image tag to this :  
</div> 

JQUERY:

$(document).ready(function(){ 
$('#image_div').html("<img src='' class='prod48'>");  //will replace image 
    $('#url').change(function(){   
     $('.prod48').attr('src',$('#url').val()); 
    }); 
}); 

JSFiddle: here

Смежные вопросы