Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery代码,用于为循环内的链接分配不同的变量_Php_Jquery - Fatal编程技术网

Php Jquery代码,用于为循环内的链接分配不同的变量

Php Jquery代码,用于为循环内的链接分配不同的变量,php,jquery,Php,Jquery,我在wordpress循环中有下面的代码,因此变量$perf和$url每次都会更改 <div class="link" data-performer="<? echo $perf; ?>"> <a class="performer_rp" href="<? echo $url; ?>">My anchor</a> </div> 问题是,我只得到$perf的第一个值,它不会随着循环而改变 让我们假设循环“循环”5次,

我在wordpress循环中有下面的代码,因此变量$perf和$url每次都会更改

<div class="link" data-performer="<? echo $perf; ?>">
    <a class="performer_rp" href="<? echo $url; ?>">My anchor</a>
</div>
问题是,我只得到
$perf
的第一个值,它不会随着循环而改变

让我们假设循环“循环”5次,我得到5个
$perf
值:value1,value2。。。价值5

jquery代码每次都将值1赋值

为什么呢?
非常感谢你

我会这样做:

function performer_rp(){
    var perf;
    $("a.performer_rp").click(function() {
       //get the value from the parent (as suggessted in the comment you can also use 
       //$(this).closest('div.link').data('performer'); if the '<a>' is not a direct child of the div
        perf = $(this).parent().data('performer');
       this.href += "?perf="+perf+"";
    });
};
选择器

$(".link");
正在获取包含所有链接的集合(示例中为5)。 当你这么做的时候

 perf = $(".link").data('performer');

您只获得集合中第一个元素的数据值

您好,我不确定是否有您的问题。为什么要在单击时指定值

相反,您可以尝试这样做,以便在加载页面后分配所有“数据执行者”值

$(document).ready(function() {
    $(".link").each(function(){
        var parent = $(this),
            old_link = parent.find('a.performer_rp').attr('href');
            new_link = old_link + "?perf="+parent.data('performer');
        parent.find('a.performer_rp').attr('href', new_link)
    });
});
例如:

嗯,泰,这太好了,虽然我得到的性能值未定义,但我会检查我的代码是否有效,非常感谢!请告诉我,谷歌不会用添加的perf变量为这些链接编制索引,对吗?:)这就是我这么做的原因way@webmasters:Nicola的代码应该可以用,是的,可能是其他地方的代码。如果
a.performer\u rp
元素并非如您所示的
div.link
元素的直接子元素,则可能需要更改
$(this.parent().data('performer')
$(this).最近('div.link')。数据('performer')取而代之。但对于您所展示的标记,链接实际上是div的直接子项,Nicola的代码很好。@T.J.Crowder是的,最近的可能更好,我正在考虑这个标记,如果您将链接嵌套在潜水中更深的位置,请使用最近的()@站长我对谷歌搜索引擎了解不多,对不起!:)我希望安全,不要让谷歌用perf属性索引我的链接。它会把我所有的博客都弄乱。很奇怪,但我们永远不知道谷歌是否会开始索引javascript在点击瞬间或页面加载后分配给链接的值,我真的不认为这是一种安全的方法,如果某些事情真的很重要,我会选择不加密
 perf = $(".link").data('performer');
$(document).ready(function() {
    $(".link").each(function(){
        var parent = $(this),
            old_link = parent.find('a.performer_rp').attr('href');
            new_link = old_link + "?perf="+parent.data('performer');
        parent.find('a.performer_rp').attr('href', new_link)
    });
});