2012-10-25 116 views
1

的号码,我有这个通过链接

{% set num= 1%} 
{% for idea in ideas %} 

    <div class="add"> 
     <a href="#"> Comentar </a>|<a href="#" rel="like{{num}}"> Tomado </a>|<a href="#">Valorar</a> 
    </div> 
</div> 
{% set num= num +1 %} 
{% endfor %} 

一个html.twig文件,这样依赖我有多个O少喜欢的想法的数量,这样

<a rel="like1" href="#"> Tomado </a> 
<a rel="like2" href="#"> Tomado </a> 
<a rel="like3" href="#"> Tomado </a> 

如果我想做一个点击jquery,但我如何指示链接的数量,num变量的值

$("a[rel='like']").click(function(){ 
      alert($("a[rel='like']").text()); 
    }); 

任何想法!

+0

这不是HTML文件! – Amberlamps

+0

你究竟想做什么?你想要页面上的链接数量还是点击链接的索引? –

+1

这是一个TWIG HTML文件。它是HTML。顺便说一句,你可以使用'{{loop.index}}'而不是增加'num'变量 – Touki

回答

2

我会假设你想要的rel属性的值。 如果这是真的,你应该试试这个:http://jsfiddle.net/kakashi/Uqqpr/

我的解决方案使用attr方法来获取rel属性的值。

更新 看样子你要包含在rel属性的数量,也就是你想要的“1”时,它的“LIKE1”,“2”时,它的“LIKE2”等 如果是这样,这个解决方案将做到这一点:

http://jsfiddle.net/kakashi/Uqqpr/1/

* 更新2 - 占多位数的 “喜欢” *

http://jsfiddle.net/kakashi/Uqqpr/2/ 这个版本使用[R在最后捕捉数字。

+0

如果在你的版本中有'like10'会怎么样? – Touki

+0

@Touki - 我在上面更新了我的答案。谢谢。 –

1

可以使用startsWith选择这样的:

$("a[rel^='like']").click(function(){ 
    var theNumber = this.rel.replace(/[^0-9]/g, ''); 
}); 

机会是,你甚至都不需要解析您的rel属性的数量(加上你确实应该使用该数据属性):

$("a[rel^='like']").click(function(){ 
    var theNumber = $(this).index(); 
}); 

实施例使用data属性:

<a href="#" data-num="{{num}}"> 

$("a[rel^='like']").click(function(){ 
    var theNumber = $(this).data("num"); 
});  

Demo.

+0

@VisioN - 在评论时完成。低调的选民 - 呃? – karim79

+0

谢谢! (不是dvr) – VisioN

2

为此,您可以试模这个jQuery选择jQuery('[attribute^="value"]')

代码像这样

$("a[rel^='like']").click(function(){ 
      alert($(this).attr("rel")); 
    });