Не совсем уверен, что вы спрашиваете.Вы хотите заменить весь объект в этом классе каждым элементом списка?Или просто его HTML-контент?
Если вы просто хотите заменить его контент, вы можете сделать что-то вроде этого:
// Create the list item array + count vars
var list_orig = [];
var list1_count, list2_count = 0;
// Loop through the list items and sort html into the right arrays
// eg. list_orig[0] = [listItem class, listItem id, listItem html content];
$('#list li').each(function(index){
if($(this).hasClass("list1")){
list1_count++;
var id = "list1_" + list1_count;
$(this).attr("id", id);
list_orig.push(["list1", id, $(this).html()]);
}else if($(this).hasClass("list2")){
list2_count++;
var id = "list2_" + list2_count;
$(this).attr("id", id);
list_orig.push(["list2", id, $(this).html()]);
}
});
В этом примере просто добавляется идентификатор к элементу списка и помещается этот, класс и исходный html из каждого элемента списка в массив "list_orig".
Чтобы получить доступ к данным и вернуть, например, элементы list1 обратно к их исходному содержимому, вы можете сделать что-то вроде этого:
// Example click function to revert list1 back to it's original html
$("body").click(function(){
for(var i in list_orig){
alert(list_orig[i][2]);
if(list_orig[i][0] == "list1"){
var id = "#" + list_orig[i][1];
$(id).html(list_orig[i][2]);
}
}
});
РЕДАКТИРОВАТЬ: Хорошо, поэтому вы хотите заменить данные на исходные данные списка.Вот пример использования нового кода из вашего редактирования:
if ($.inArray($(this).attr('class'),show) === 0)
{
// CREATE A TEMPORARY VAR FOR YOUR MATCHED LIST (eg. li.box)
var x_orig = $(this).attr('class') + "_orig";
x_orig = window[x_orig]; //USE THIS TO CONVERT THE STRING TO A VARIABLE NAME
// CREATE A TEMPORRAY VAR FOR THE NEW CONTENT
var content = x_orig[0]->innerHtml;
// REPLACE THE CONTENT
$(this).html(content);
}
Все, что я могу сделать, не видя больше вашего HTML.
ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Вы можете простоиспользуйте одну функцию без дополнительных операторов if для проверки класса.Здесь мы скрываем текущий список, берем его класс и создаем класс или идентификатор исходного списка и показываем этот оригинальный список.
if ($.inArray($(this).attr('class'),show) == 0)
{
// FIRST HIDE THE CURRENT LIST
$(this).hide();
// THEN CONSTRUCT THE ORIGINAL LIST CLASS or ID
var x_orig = "." + $(this).attr('class') + "_orig"; // CLASS USING "."
// var x_orig = "#" + $(this).attr('class') + "_orig"; // or ID USING "#"
// NOW SHOW ORIGINAL USING x_orig VARIABLE FROM ABOVE
$(x_orig).show();
console.log($(this));
}