2010-12-17 45 views
0

我正在尝试使用可调整大小的元素,在这种情况下是一个图像。 它的工作原理,但我不能取代新维度的原始宽度和高度,我做错了什么?替换字符串中的attr宽度和高度

var codigo = '<div style="text-align: left;"><img src="../pics/bom.jpg" id="bom.jpg" title="" alt="" style="border: 1px solid;" height="167px" width="167px"></div>'; 
// 

if(pic = $(codigo).find('img').attr('id', que_pic)) { 
    alert(largura_final_imagem+" "+altura_final_imagem); // 400px 
    alert($(pic).attr('width')+" "+$(pic).attr('height')); // 400px 

    if($(pic).removeAttr('width')) { 
     $(pic).attr('width', largura_final_imagem); 
     if($(pic).removeAttr('height')) { 
      $(pic).attr('height', altura_final_imagem); 
     } 
    } else { 
     alert("Error resizing your image!"); 
    } 
    alert($(pic).attr('width')); // 0 
    alert($(pic).attr('height')); // 0 
    novo_html = codigo; 
    alert(novo_html); // same string without changes 
    } 

由于

Pluda

+0

不要忘了接受最有用的答案。 – 2010-12-17 13:40:27

回答

0

我修改您的代码以得到它的工作(也可在http://jsfiddle.net/ahwv6/1/)。我不得不添加一些变量,你会在下面看到。

var codigo = '<div style="text-align: left;"><img src="../pics/bom.jpg" id="bom.jpg" title="" alt="" style="border: 1px solid;" height="167px" width="167px"></div>'; 
// 
var largura_final_imagem = 100; 
var altura_final_imagem= 100; 
var $codigo = $(codigo); 
var $pic = $codigo.find('img'); 


alert(largura_final_imagem+" "+altura_final_imagem); 
alert($pic.attr('width')+" "+$pic.attr('height')); 

$pic.attr('width', largura_final_imagem); 
$pic.attr('height', altura_final_imagem); 

alert($pic.attr('width')); 
alert($pic.attr('height')); 
var novo_html = $codigo.html(); 
alert(novo_html); // same string without changes 

很多你的检查是不必要的,所以我删除了它们。

希望这会有所帮助。

+0

您好,感谢您的帮助 – Pluda 2010-12-17 13:20:29

+0

与此它效果不错 – Pluda 2010-12-17 18:20:12

+0

novo_html = $ codigo.replace($ pic.attr('width'),largura_final_imagem); novo_html = novo_html.replace($ pic.attr('height'),altura_final_imagem); – Pluda 2010-12-17 18:21:15

2

对于获取/设置高度/宽度使用heightwidth功能。

例如:

var picHeight = $(pic).height(); // get height 
$(pic).height(500); // set height 
0

它的工作原理铁道部或更少:-)

,如果你在结尾处加上这个

`VAR txt_codigo =使用document.createElement( 'TEXTAREA'); txt_codigo.id ='txt_codigo'; $(txt_codigo).css('width','100%'); $(txt_codigo).css('height','200px'); $(txt_codigo).val(novo_html); $(“body”)。prepend(txt_codigo);

` 你会发现,现在的字符串的div容器不见了......

再次感谢

Pluda

+1

欢迎来到计算器。这里的惯例是编辑您的原始回复,而不是发布新回复。此外,请尽量花一点时间正确地设置您的帖子的格式。 – 2010-12-17 13:42:01

+0

非常抱歉,我真的试图正确发布它,这符合我自己的兴趣,不是吗? :-) – Pluda 2010-12-17 15:05:34