изменить ширину / высоту тега <img>в тексте - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть кусок HTML с изображениями.Эти теги изображений имеют определенную ширину и высоту:

<img width="300" height="80" src="image.jpg" />

Я хотел бы просмотреть этот HTML-код и заменить ширину и высоту ширины изображений значением% вместо 100% = 600 и удалитьатрибут высоты все вместе.Так, например, если изображение имеет определенную ширину 300, ширина будет заменена на 50%:

<img width="50%" src="image.jpg" />

Я довольно мусор с REGEX, но я представляю его в значительной степени собираюсьбудь ответом.Поэтому, пожалуйста, помогите.

В случае, если кому-то интересно, это необходимо для форматирования HTML-записи блога во что-то, что будет отображаться в дружественной мобильной версии блога.На данный момент создание актуальных копий изображений с измененным размером не является жизнеспособным решением.

У меня есть jquery, jquery mobile, если есть подход на основе javascript к этой проблеме.

Ответы [ 3 ]

2 голосов
/ 11 февраля 2012

Проверено, и, кажется, работает:

$('img').each(
    function(){
        var w = $(this).attr('width').match(/\d+/);
        var percent = (w/600)*100;
        $(this).removeAttr('width').css('width',percent + '%');
    });​

Демонстрация JS Fiddle .

0 голосов
/ 11 февраля 2012

Если вы не любите использовать регулярные выражения, вы можете использовать DOMDocument для анализа вашего HTML в объект.Смотрите здесь: Regex & PHP - изолировать атрибут src от тега img

0 голосов
/ 11 февраля 2012

Попробуйте этот простой код:

$('img').removeAttr('height').attr('width', function() {
    return Math.round((this.width * 100)/600) + '%'; 
});

Или другой вариант:

$('img').css('width', function() {
    return Math.round((this.width * 100)/600) + '%'; 
}).removeAttr('width height');
...