2013-08-06 4 views
0

Двойной щелчок по изображению в #train div удалит это изображение и все изображения, чтобы он был прав. var d должен вернуть последнее изображение в div поезда, а var g должен вернуть индекс этого изображения в массив main_pics.Найти последний элемент в div и его индекс в массиве

$(document).ready(function() { 

    var main_pics = ["AN.gif", "BN.gif", "CN.gif", "DN.gif", "EN.gif", "GN.gif"]; 
    var starting_pics = ["AN.gif", "CN.gif", "EN.gif"]; 

    var i = 0; 
    for (i = 0; i < starting_pics.length; i++) { 
     $("<img/>").attr("src", "images/" + starting_pics[i]).appendTo("#main").addClass("pics"); 
    }  
    // Code not relevant to the question. 

    $("#train").on("dblclick", ".pics", function() { 

     var l = $("#train").children(".pics").length; 
     var c = $(this).index(); 
     $("#train").children().slice(c, l).remove(); 

     var d = $("#train").children(".pics").last() 
     alert(d); 
     var g = $.inArray(d.src.split("/").pop(), main_pics); 
     alert(g); 
    }); 
});  
+4

Извините, что ваш вопрос? –

+0

var g возвращает неопределенную ошибку. Где происходит преобразование объекта в строку? – jwelter

+0

А, я вижу. 'd' является объектом jQuery, а не элементом DOM, поэтому он не поддерживает свойство' src'. Попробуйте 'prop (« src ») вместо этого или получить доступ к базовому элементу DOM с помощью' get() 'или индексации. –

ответ

1

Вот ваши исправления:

var d = $("#train .pics").last(); 
var g = $.inArray(d.prop('src').split("/").pop(), main_pics); 
+1

@ Frédéric Hamidi, Извините за позднюю публикацию. MVP ответил на мой вопрос, так и вы. Большое спасибо вам обоим. – jwelter