Управление скопированным атрибутом - PullRequest
0 голосов
/ 09 февраля 2011

Я работаю над простым сценарием лайтбокса для моего сайта, который оборачивает ссылку (A) вокруг изображения. URL ссылки должен быть SRC изображения, но слегка измененным.

URL-адрес изображения может выглядеть следующим образом: "pb028855_copy_147x110.jpg", и я хочу, чтобы он удалил " 147x110", от "copy " до ".jpg", то есть.

Мой текущий скрипт, чтобы скопировать SRC из картинки по ссылке, выглядит так:

$(function(){
    $('img.withCaption').each(function(){
        var $imgSrc = $(this).attr("src");
        $(this).wrap('<a rel="lightBox" />');
        $(this).parent().attr("href", ""+$imgSrc);
    });
});

Как я могу использовать части attr?

Заранее спасибо ...

Ответы [ 3 ]

1 голос
/ 09 февраля 2011

Если вы точно не знаете, какими будут цифры, вы можете использовать метод replace() (документы) с регулярным выражением.

$(function(){
    $('img.withCaption').each(function(){
        var $imgSrc = this.src.replace(/_\d+x\d+\./,'.');
        $(this).wrap('<a rel="lightBox" />')
               .parent().attr("href", ""+$imgSrc);
    });
});

Итак, это:

pb028855_copy_147x110.jpg

закончится так:

pb028855_copy.jpg
0 голосов
/ 09 февраля 2011

Метод attr просто возвращает строку, вы можете манипулировать ею, как и любой другой. Таким образом, замена регулярного выражения будет работать.

$(function(){
    $('img.withCaption').each(function(){
        var imgSrc = $(this).attr("src")*.replace(/_copy_\d+x\d+\.jpg$/, "_copy.jpg")*;
        $(this).wrap($('<a rel="lightBox" />').attr("href", imgSrc);
    });
});

(Я немного очистил упаковочную часть.)

0 голосов
/ 09 февраля 2011

Это несколько способов манипулирования строками, в зависимости от того, что именно вы хотите, например:

$imgSrc = $imgSrc.replace(/thumb/, 'big');
...