我试图将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
类元素中的参数。
答案 0 :(得分:1)
将$(this).next().text()
替换为$(this).find(".test").text()
。
$(this).find(".test").text()
会为每个div
test
找到optin-holder
个div
课程的价值。
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 /