2011-03-29 3 views
1

rel 요소가 이와 같이 표시되어야하는 플러그인을 사용하고 있습니다.jQuery로 rel 속성에서 속성을 가져옵니다.

<ul id="product-thumbs-list"> 
     <li><a href="1-big.jpg" rel="useZoom: 'cdonZoom', smallImage: '1.jpg'"></li> 
     <li><a href="2-big.jpg" rel="useZoom: 'cdonZoom', smallImage: '2.jpg'"></li> 
</ul> 

jQuery를 통해 smallImage 값을 가져올 수 있습니까?
이 경우 '1.jpg 또는'2.jpg '입니다.

감사합니다.

+0

jQuery에는 쉬운 방법이 없다고 생각합니다. '.attr ('rel')'을 사용하여 rel의 내용을 가져 와서 배열로 나눠서 smallImage로 시작하는 결과를 찾아서 파일 이름을 얻어 와야 할 수도 있습니다. –

+0

rel 속성에 이와 같은 데이터를 저장하는 것은 매우 불량한 플러그인입니다. 최소한 data-xxx = ""를 사용하거나 적어도 JSON으로 데이터를 저장해야합니다. – Dunhamzzz

답변

1

의 한 방법입니다 바랍니다.

+0

smallImage 값 다음에 아무 것도 입력하지 않으면 큰 효과가 있습니다. 적어도, 나는하지 않을 것이다. Thx – Maartin

+0

@Maartin 그와 같은 시나리오를 지원하려면 다음과 같이'split '을 추가하면됩니다 : var value = arrTemp [1] .split (",") [0];'형식이 일관성이 있다고 가정합니다. 이 경우 jsFiddle 예제 : http://jsfiddle.net/yahavbr/4FGzY/1/ –

0

"useZoom : 'cdonZoom', smallImage : '1.jpg'"문자열을 반환하는 rel 속성을 얻을 수 있습니다. ":"을 사용하여 문자열을 분할하고 마지막 배열 항목을 가져올 수 있습니다.

$("#product-thumbs-list a").each(function(index) { 
    var arrTemp = $(this).attr("rel").split("smallImage: "); 
    var value = arrTemp[1]; 
    alert(value); 
}); 

Live test case :

은 나는 여기에 도움이

0

멋지게 추한,하지만 당신은 rel 데이터가 "잘 형성"경우에 한해 지칠대로 지친 eval()을 사용할 수 있습니다

$(function() { 
    $('a').mouseover(function() { 
     eval('var rel = {' + $(this).attr('rel') + '};'); 
     $('#out').text(rel.smallImage); 
    }); 
}); 

HTML로 :

<ul id="product-thumbs-list"> 
    <li><a href="1-big.jpg" rel="useZoom: 'cdonZoom', smallImage: '1.jpg'">link1</a></li> 
    <li><a href="2-big.jpg" rel="useZoom: 'cdonZoom', smallImage: '2.jpg'">link2</a></li> 
</ul> 
<p id="out"></p> 

Demo.