0

だから私は次のことを達成しようとしています

  • manager-msg のクラスですべての td をループします。
  • それらのそれぞれからのテキストを変数/配列に保存します
  • 分割して新しいテキストを作成する
  • 各 manager-msg td のテキストを置き換えます

現在、私は最初の部分で立ち往生しています。例のCodePen here で2 回ループすることができます。

ただし、最初のメッセージを 2 回保存し、2 番目の 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( これをどのように処理しますか?

4

4 に答える 4

2

値を取得するために使用.map()します。

var messages = $('.manager-msg').map(function() {
    return $(this).text();
}).get();

http://jsfiddle.net/YfpZL/

于 2013-10-02T21:07:55.540 に答える
2

代わりに jQuery .each()を使用してこれを試してください

var home_inbox_br_fix = function() {
    var test = [];
    $('.manager-msg').each(function(i){
        test[i] = this.innerHTML;
  alert(test[i]);
    });
};

デモはこちら

于 2013-10-02T21:08:32.213 に答える
1

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]);
}
于 2013-10-02T21:11:52.120 に答える