0

myVariableHTMLを含む文字列です。

それを操作するために、私は次のことをしています:

$(myVariable).find('div.grid-12-12').each(function() {
            $(this).attr('class','grid-2-12');
                        alert($(this).attr('class'));
        });

アラートに表示されるのは常にgrid-12-12です。正しいdivが見つかりましたが、変更がに保存されていないようですmyVariable

手伝ってくれませんか?

4

2 に答える 2

1

呼び出す$(myVariable)と、の内容でDOM要素が作成され、myVariable呼び出しattrによってその要素が変更されます。の元の内容はmyVariable単なるテキストであるため、まったく影響を受けません。

操作によって生成される内容のテキスト表現を取得したい場合は、それを空の要素に追加してから、そのhtmlコンテンツを取得できます。

var newElement = $(myVariable)... // your code
myVariable = $("<p/>").append(newElement).html();

または単に(サポートされている場合):

myVariable = newElement[0].outerHTML;
于 2012-08-26T21:33:46.000 に答える
0

ブラウザのキャッシュをクリーンアップしてみてください。ここで働いた。見て:

<!DOCTYPE html>
<html lang="pt-BR">
    <head>
        <meta charset="UTF-8">
        <title>Index JQuery Mobile</title>
        <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#busca').find('div.grid-12-12').each(function() {
                    $(this).attr('class', 'grid-2-12');
                    alert($(this).attr('class'));
                });
            });
        </script>
    </head>
    <body>
        <div id="busca">
        <div class="grid-12-12"></div>
        <div class="grid-12-12"></div>
        <div class="grid-12-12"></div>
        <div class="grid-12-12"></div>
        <div class="grid-12-12"></div>
        </div>
    </body>
</html>
于 2012-08-26T21:43:35.333 に答える