替换字符串中的attr宽度和高度

时间:2010-12-17 12:24:19

标签: jquery string replace

我正在尝试使用可调整大小的元素,在这种情况下是一个图像。 它有效,但我无法取代新尺寸的原始宽度和高度,我做错了什么?

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

3 个答案:

答案 0 :(得分:2)

对于获取/设置高度/宽度,请使用heightwidth函数。

例如:

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

答案 1 :(得分: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

你的很多支票都是不必要的,所以我将它们删除了。

希望这有帮助。

答案 2 :(得分: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);  $( “正文”)前置(txt_codigo);

` 你会注意到现在字符串的div容器已经消失......

再次感谢

Pluda