2010-09-08 3 views
6

Привет, я пытаюсь обернуть изображение якорем, если класс имеет привязку.jQuery wrap img with anchor

JQuery:

if ($(".views-row:has(a)").length) { 
    var noderef = $(this).attr("anchor"); 
    $(".views-field-field-teaserbox-fid img").wrap("[anchor = "'+noderef+'" ]"); 
} 

HTML:

<div class="view-content"> 
     <div class="views-row"> 

      <div class="views-field-field-node-ref-nid"> 
      <span class="field-content"><a class="active" href="/all-essentials-inspiring-events">All the essentials of inspiring events.</a></span> 
     </div> 

     <div class="views-field-field-teaserbox-fid"> 
      <span class="field-content"><img width="208" height="137" src="http://localhost:8888/sites/default/files/wedding_Giveaway_teaser.jpg?1283880578" alt="" class="imagefield imagefield-field_teaserbox"></span> 
    </div> 

Кроме того, я должен использовать двойные или одинарные кавычки?

ответ

0

Я предполагаю, что Вы могли бы хотеть что-то вроде этого:

$('.views-row').each(function(){ 
    var current = $(this); 
    var anchor = current.find('a').first().attr('href'); 

    if(anchor){ 
     var wrapped = $(current.find('img')).wrap('<a href="' + anchor + '"></a>'); 
    } 
}); 

Это будет обернуть якорь с тем же href.view-field-field-node-ref-id a, как вокруг img в .views-field-field-teaserbox-fid.

О, о одиночных или двойных кавычках: Не имеет значения - используйте для вас все, что с вами работает.

+0

'.wrapAll()' обертывает элемент слева от функции, поэтому это создаст некоторый недопустимый HTML :) –

+0

@Nick Oops .... –

+0

Yi, я пробовал ваш код, и он не работает. Я буду продолжать отлаживать – arkjoseph