0

myVariable是一个包含 HTML 的字符串。

为了操纵它,我正在做以下事情:

$(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 回答