1
var template = $(this).parent().next().html()
console.log(template)

铬控制台输出

<a href="/weishiji/objActivity/timeline/746"><img class="my-pic-head" width="40" height="40" original="/weishiji/avatar/20130121/746.jpg" style="display: block;" src="/weishiji/avatar/20130121/746.jpg"></a>
        <p class="co_reply">
            <a class="co_reply_name" href="/weishiji/objActivity/timeline/746">test</a>
            7                <br>
            <abbr title="2013-01-26 11:11:11" class="publishfooter">56 minute</abbr>
        </p>
        <pre class="delete_reply" id="comment-542">delete</pre>

现在我使用下面的代码来修改这个html中的一些属性。

$(template).find('img').attr('src', 'a')
console.log($(template).html())

铬控制台输出

<img class="my-pic-head" width="40" height="40" original="/weishiji/avatar/20130121/746.jpg" style="display: block;" src="/weishiji/avatar/20130121/746.jpg">

但这不是我想要的结果,没有改变img src属性值,扔掉其他节点我只想改变里面的属性

4

2 回答 2

0

我认为您的问题是您将模板设置为等于 html() 与将其设置为实际对象。试试这个:

var template = $(this).parent().next();
$(template).find('img').attr('src', 'a');

希望这可以帮助。这是一些示例小提琴,以查看它的工作原理。

正如@AustinBrunkhorst 指出的那样,这将是一样的:

template.find('img').attr('src', 'a');

祝你好运。

于 2013-01-26T04:18:01.163 回答
0

问题是,您选择的内容已经是一个 jquery 对象,因此无需再次重新包装它。

我怀疑你的代码有问题,但无论如何

这是一个例子

var html = $('#id');
var attr = html.find('img').attr('src' , 'somehtm');
console.log(html.html());

http://jsfiddle.net/SxQMw/

于 2013-01-26T04:23:55.757 回答