Поэтому я пытаюсь выполнить следующее
В настоящее время я застрял в первой части, я могу пропустить два раза в моем примере CodePen.
Однако я сохраняю первое сообщение дважды, получаю текст во втором td.
HTML
<table cellpadding="10" border="1">
<tr>
<td>Name</td>
<td>Wants to Meet</td>
<td >Message</td>
</tr>
<tr>
<td>Ann</td>
<td>Cal</td>
<td class="manager-msg">Hi I'd love to meet Cal</td>
</tr>
<tr>
<td>Bob</td>
<td>Joe</td>
<td class="manager-msg">Hi I'd like to meet Joe</td>
</tr>
</table>
JQuery
var home_inbox_br_fix = function() {
var num_manager_msg = $('.manager-msg').length;
var test = [];
for (var i = 0, num_manager_msg; i < num_manager_msg; i++) {
test[i] = $('.manager-msg').html();
alert('Message '+(i+1));
alert(test);
console.log(test);
}
};
/*
var home_inbox_br_fix = function() {
var test = [];
$(".manager-msg").each(function(i){
test.push($('.manager-msg').html());
alert(this.id + " is the " + i + "th div with this class");
});
console.log(test);
};
*/
home_inbox_br_fix();
Получил код туннеля в настоящий момент X (как бы вы, парни, справились с этим?
Попробуйте вместо этого использовать jQuery .each()
var home_inbox_br_fix = function() {
var test = [];
$('.manager-msg').each(function(i){
test[i] = this.innerHTML;
alert(test[i]);
});
};
this
Я бы использовал .map()
чтобы получить значения.
var messages = $('.manager-msg').map(function() {
return $(this).text();
}).get();
this
мне = 'нужно больше спать'
вам просто нужно правильное индексирование
var home_inbox_br_fix = function() {
var num_manager_msg = $('.manager-msg').length;
var test = [];
for (var i = 0, num_manager_msg; i < num_manager_msg; i++) {
test[i] = ($($('.manager-msg')[i]).html());
alert('Message '+(i+1));
alert(test);
console.log(test);
}
};
Вы всегда получаете один и тот же текст, потому что вы не используете текущий индекс при получении HTML. Он будет работать, если вы так зацикливаетесь (хотя есть другие способы, как показано в других ответах):
for (var i = 0, num_manager_msg; i < num_manager_msg; i++) {
test[i] = $('.manager-msg').eq(i).html();
// You were missing this! -----^
alert('Message '+(i+1));
alert(test[i]);
console.log(test[i]);
}