0

我的源代码在 img 元素中设置 align 和 margin 属性时出现明显错误。所以我的 html src 是

<p><img left margin: 5px;" src="http://techtools4biz.com/wp-content/uploads/2011/06/Google-logo-300x242-150x150.jpg" alt="" /></p>

当然应该是<img align="left" margin=".." src="..." />

在我之前的问题中,有人建议使用 find left element which 并用这样的 align left 属性替换他

$('img'.attr("left")){
    $(this).removeAttr('left');
    $(this).attr("align","left");
};

试过了还是不行,有什么建议吗?

这是链接 http://jsfiddle.net/GJRmB/

4

3 回答 3

1

如果保证模式总是这样,您可以使用正则表达式。实际上你应该修复任何生成源的东西......但是让我们去......

JSFiddle 上的示例

// the image is wrapped in `p`, so we can easily grab its generated HTML code
var imgMessedHtml = $("img").parent().html();

// now assuming that pattern is always like that, we can try extracting the
// attributes
var align = imgMessedHtml.match(/img (\w+)/i)[1];
var margin = imgMessedHtml.match(/margin.*?(\d+px)/i)[1];

得到我们需要的信息后,我们就可以修复源了

// I am removing everything between `img` and `src`
$("img").parent().html(
    imgMessedHtml.replace(/img.*?src/i, "img src")
);

现在使用我们提取的数据,我们可以将其设置为img

$("img").attr("align", align);
$("img").attr("margin", margin);

确实不建议使用 Regex 解析 HTML,但是如果您别无选择,那么...

于 2013-08-24T14:00:03.263 回答
1

您可以使用链接和属性选择器

$('img[left]').removeAttr('left').attr("align","left");

jsFiddle在这里

另见:

于 2013-08-24T13:42:37.237 回答
1

你的括号不匹配

var $img = $('img');
$img.removeAttr('left');
$img.attr("align","left");

演示:小提琴

或使用链接

jQuery(function(){
    var $img = $('img').removeAttr('left').attr("align","left");
})

演示:小提琴

于 2013-08-24T13:38:00.743 回答