我想在按钮点击时显示10个条目(类“马”)的得分和用户名,它连接图像的alt和title标签中的值,附加到每个条目的类“lane”。如果我包含“return false”来结束each()循环,则此函数仅显示每个条目上 first 条目的值。如果我排除return false,则所有值都会显示在所有条目上。我需要帮助,了解如何只显示相应条目上每个条目的值。
按要求添加HTML示例:
<div id="lane10" class="lane">
<img class="horse" id="car10" alt="James Hinchcliffe" title="560 pts" src="indyNewGunMetal.png"/>
</div>
$('.showLabels').on('click', Labels);
function Labels() {
$('.horse').each(function() {
var imgTitle = (AJS.$(this).attr('title'));
var imgAlt = (AJS.$(this).attr('alt'));
var fullTag = "<div class='carLabel'>" + imgAlt + " - "
+ imgTitle + "</div>";
// show image title
AJS.$('.lane').before(fullTag);
// return false stops the each loop.
return false;
});
};
答案 0 :(得分:1)
如果你需要使用你在每个元素上应用的函数的返回布尔值,你应该使用谓词:
$('.showLabels').on('click', Labels);
var predicate = true;
function Labels() {
$('.horse').each(function () {
var imgTitle = (AJS.$(this).attr('title'));
var imgAlt = (AJS.$(this).attr('alt'));
var fullTag = "<div class='carLabel'>" + imgAlt + " - " + imgTitle + "</div>";
AJS.$('.lane').before(fullTag);
predicate = predicate && false;
});
};
//do something with predicate
这只是一个想法,“false”将始终将您的谓词更改为false,而不是“false”,您应该使用您需要在那里使用的任何条件。
答案 1 :(得分:0)
试试此代码
$('.showLabels').on('click', Labels);
function Labels() {
$('.horse').each(function(i,val) {
var imgTitle = (AJS.$(this).attr('title'));
var imgAlt = (AJS.$(this).attr('alt'));
var fullTag = "<div class='carLabel'>" + imgAlt + " - "
+ imgTitle + "</div>";
// show image title
AJS.$('.lane').before(fullTag);
// return false stops the each loop.
if(i==9)
return false;
});
};