Обернуть элемент в родительский элемент

Тема в разделе "JavaScript", создана пользователем Kotex, 18 май 2012.

Модераторы: ZiX
  1. Kotex

    Kotex Создатель

    Регистр.:
    23 апр 2012
    Сообщения:
    10
    Симпатии:
    3
    Здравствуйте, уважаемые форумчане!
    Есть код:
    function getCatItem(item_id,item_pict,item_name,type_h,item_price,item_artno,item_sizes,item_colors, tkan,auth,photoslaider)
    {


    document.getElementById("model_h").innerHTML = item_name; // артикул f_Name
    document.getElementById("type_h").innerHTML = type_h; // тип одежды "Блузка"
    document.getElementById("preshow_img").src = item_pict; // большая картинка
    document.getElementById("model_artno").innerHTML = item_artno; // артикул

    if(tkan.length > 0){
    document.getElementById("Tkan").innerHTML = tkan.join(', ');
    } else {
    document.getElementById("Tkan").innerHTML = '';
    }
    document.getElementById("parid").value = item_id; // id объекта
    //document.getElementById("photomain").value = item_pict; // большая картинка
    genTableColorRazmer(item_sizes, item_colors, document.getElementById('ColorRazmer'), auth);
    //document.getElementById("len_arr").value = len_arr;

    if(auth>0){
    document.getElementById("model_price").innerHTML = item_price + ' руб.';
    //document.getElementById("model_price").innerHTML = 'по запросу';
    }
    var photo_len = photoslaider.length;
    if(photo_len > 0){
    var elem = document.getElementById("models"); // сюда добавляем картинки
    elem.innerHTML=''; // удаляем прежние изоражения
    photos=new Array();
    links=new Array();

    for(key in photoslaider)
    {
    if(key<3) {
    img = createelem("img", "photoslider_"+key, elem); // создаем img
    img.src = photoslaider[key][0]; // подгружаем картинку
    img.name = "photoslider_"+key;
    img.setAttribute('onclick',"document.getElementById('preshow_img').src='"+photoslaider[key][1]+"'");
    }
    photos[key] = photoslaider[key][0];
    links[key] = "document.getElementById('preshow_img').src='"+photoslaider[key][1]+"'";


    }

    }
    $('#preshow_img').hide();
    $('#loader').show();
    $('#preshow_img').load( function() {
    $('#loader').hide();
    $('#preshow_img').show();
    } );

    if(photo_len < 2) $('#models').hide(); else $('#models').show();
    if(photo_len <= 3) {
    $('#models-l').hide();
    $('#models-r').hide();
    } else {
    $('#models-l').show();
    $('#models-r').show();
    }

    window.document.getElementById('popup-layer').style.visibility='visible';
    window.document.getElementById('popup').style.visibility='visible';
    document.location.href='#anchor';
    }

    function getCollItem(item_pict, item_models, item_desc, photoslaider)
    {


    document.getElementById("item_models").innerHTML = item_models; // артикул f_Name
    //document.getElementById("type_h").innerHTML = type_h; // тип одежды "Блузка"
    document.getElementById("preshow_img").src = item_pict; // большая картинка
    document.getElementById("item_desc").innerHTML = item_desc; // артикул

    var photo_len = photoslaider.length;
    if(photo_len > 0){
    var elem = document.getElementById("models"); // сюда добавляем картинки
    elem.innerHTML=''; // удаляем прежние изоражения
    photos=new Array();
    links=new Array();
    for(key in photoslaider)
    {
    if(key<3) {
    img = createelem("img", "photoslider_"+key, elem); // создаем img
    img.src = photoslaider[key][0]; // подгружаем картинку
    img.name = "photoslider_"+key;
    img.setAttribute('onclick',"document.getElementById('preshow_img').src='"+photoslaider[key][1]+"'");
    }
    photos[key] = photoslaider[key][0];
    links[key] = "document.getElementById('preshow_img').src='"+photoslaider[key][1]+"'";


    }

    }
    $('#preshow_img').hide();
    $('#loader').show();
    $('#preshow_img').load( function() {
    $('#loader').hide();
    $('#preshow_img').show();
    } );

    if(photo_len < 2) $('#models').hide(); else $('#models').show();
    if(photo_len <= 3) {
    $('#models-l').hide();
    $('#models-r').hide();
    } else {
    $('#models-l').show();
    $('#models-r').show();
    }
    window.document.getElementById('popup-layer').style.visibility='visible';
    window.document.getElementById('popup').style.visibility='visible';
    document.location.href='#anchor';
    }

    function createelem(tag, id, elem){ // создает тег tag c id для родительского элемента HTML
    var el=document.createElement(tag);
    el.id=id;
    if(elem) elem.appendChild(el);
    return el;
    }
    function createtn(str, elem){ // добавляет текст в элемент elem
    var tn=document.createTextNode(str);
    if(elem) elem.appendChild(tn);
    return tn;
    }

    По результатам отработки скрипта, он в див с ид=models
    добавляет фотографии с такой маской:
    <img onclick="document.getElementById('preshow_img').src='/netcat_files/95/41/1_0.JPG'" name="photoslider_0" src="***" id="photoslider_0">

    Скажите, пожалуйста, как в таком случае обернуть каждую такую картинку в тег <a>...</a>?
    Заранее благодарю!
     
  2. MaxiSoft

    MaxiSoft

    Регистр.:
    5 апр 2007
    Сообщения:
    187
    Симпатии:
    131
    Примерно вот так будет: правим вот этот кусок кода
    Код:
    if(key<3) {
    img = createelem("img", "photoslider_"+key, elem); // создаем img
    img.src = photoslaider[key][0]; // подгружаем картинку
    img.name = "photoslider_"+key;
    img.setAttribute('onclick',"document.getElementById('preshow_img').src='"+photoslaider[key][1]+"'");
    }
    
    будет примерно так:

    Код:
    if(key<3) {
    a = createelem("a", "link_"+key, elem);
    a.href = "твой линк который нужен";
     
    img = createelem("img", "photoslider_"+key, a); // создаем img
    img.src = photoslaider[key][0]; // подгружаем картинку
    img.name = "photoslider_"+key;
    img.setAttribute('onclick',"document.getElementById('preshow_img').src='"+photoslaider[key][1]+"'");
    }
    
     
  3. Kotex

    Kotex Создатель

    Регистр.:
    23 апр 2012
    Сообщения:
    10
    Симпатии:
    3
    MaxiSoft, ты крут=) спасибо тебе!
    А не подскажите еще как добавить такой ссылке class="**"?
    Разобрался: делать так: a.className = "**";
     
  4. Kotex

    Kotex Создатель

    Регистр.:
    23 апр 2012
    Сообщения:
    10
    Симпатии:
    3
    Уважаемые форумчане, снова вопрос:
    Есть вот этот скрипт, что сверху (первый пост), он постоянно "прослушивает" страницу, а есть скрипт , который работает по принципу on ready, то есть ко всем уже загруженным элементам, что нужно добавить, что бы этот Cloud Zoom постоянно так же "прослушивал" страницу?