2011-03-29 42 views
1

使用需要rel-element的插件如下所示。使用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-value?
在這種情況下,'1.jpg或'2.jpg'。

謝謝!

+0

我不認爲有一個簡單的方法與jQuery。你可能只需要使用'.attr('rel')'獲得rel的內容並將其分割成數組,然後找到以smallImage開頭的結果並從中獲取文件名。 – 2011-03-29 09:15:25

+0

這是一個很不好的插件,可以像rel屬性那樣存儲數據。應該使用data-xxx =「」或至少將數據存儲爲JSON。 – Dunhamzzz 2011-03-29 09:20:30

回答

1

這裏有一種方法:

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

Live test case

+0

只要你沒有在smallImage值後面輸入任何內容,這個工作效果很好。那麼,至少我不會。 Thx – Maartin 2011-03-29 11:33:14

+0

@Maartin這是非常真實的..支持這種情況下,你可以像這樣添加另一個'split':'var value = arrTemp [1] .split(「,」)[0];'假定格式一致。這種情況下的jsFiddle示例:http://jsfiddle.net/yahavbr/4FGzY/1/ – 2011-03-29 11:40:11

0

你可以得到返回字符串「useZoom:'cdonZoom',smallImage:'1.jpg'」的rel屬性。 比你可以使用「:」拆分字符串並獲取最後一個數組項。

我希望這是有幫助的

0

高檔的醜陋,但你可以使用可怕eval(),前提是rel數據 「良好形成」:

$(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