每个jQuery函数只返回最后一个元素的值

时间:2016-10-21 13:36:45

标签: jquery function parameters each

我试图将html元素文本值与特定类作为参数传递给每个函数内部的函数。

输出仅返回传递的最后一个文本值。

我想将每个文本值分配给它旁边的元素中包含的函数,因此它将值作为每个不同html代码块的函数的参数返回。

jQuery代码:

$(".optin-holder").each(function(index,obj) {   

    $(this).html("<div class='contentOptin'>" +  new Optin($(this).next().text()) + "</div><br/><br/>");

  //$(this).html("<div class='contentOptin'>" + $(this).next().text() + "</div><br/><br/>");                                        

}); 

function Optin(promoNumber){    

var promo = promoNumber;

var content = '<input onclick="javascript:saveActivity('+promo+')"  type="button" name="logOptin" value="PARTICIPAR" class="btn btnParticipate" />';

$(".contentOptin").html(content);

}

HTML:

<div class="offerBoxAll">
    <div class="optin-holder">
        <div class="contentOptin">
            <input class="btn btnParticipate"  onclick="javascript:saveActivity(1284)" name="logOptin" value="PARTICIPAR" type="button">
        </div>
    </div>
<div class="test">1283</div>
</div>


<div class="offerBoxAll">
    <div class="optin-holder">
            <div class="contentOptin">
                <input class="btn btnParticipate" onclick="javascript:saveActivity(1284)" name="logOptin" value="PARTICIPAR" type="button">
            </div>
    </div>
    <div class="test">1284</div>
</div>

正如您所看到的,它只是将最新值传递给每次迭代。

我需要在每个.test类旁边传递.contentOptin类的值。

注释行为我提供了每次迭代所需的值,但不在函数内作为参数。 Optin(param)函数会附加一些代码,这些代码将.test类文本的值传递给saveActivity(param)函数作为.contentOptin类元素中的参数。

jsfiddle example

2 个答案:

答案 0 :(得分:1)

$(this).next().text()替换为$(this).find(".test").text()

$(this).find(".test").text()会为每个div test找到optin-holderdiv课程的价值。

Js更改

$(".optin-holder").each(function(index,obj) {                               
    $(this).html("<div class='contentOptin'>" + Optin($(this).find(".test").text()) + "</div><br/><br/>");
    // $(this).html("<div class='contentOptin'>" + $(this).next().text() + "</div><br/><br/>");                                     

});

答案 1 :(得分:0)

在函数内部使用值迭代元素,并在'each'中设置条件语句,以检查此元素的给定值是否等于传递给函数的参数。 jsfiddle.net/puzzledGalore/6sy7badn /