Замените атрибут SRC на TITLE в теге LI - PullRequest
0 голосов
/ 22 октября 2008

У меня есть HTML-код, приведенный ниже:

<ul id="thumbsPhotos">
     <li src="/images/1alvaston-hall-relaxing-lg.jpg"  onclick="updatePhoto (this.title)"><img src="/images/1alvaston-hall-relaxing-sl.jpg"  width="56" height="56"></li>
     <li onclick="updatePhoto(this.title)" src=""><img src="" width="56"  height="56"></li>
     <li onclick="updatePhoto(this.title)" src=""><img src="" width="56"  height="56"></li>
</ul>

Теперь я хочу заменить все теги src in <li>, а не теги <img>, на InnerHTML. При этом мой вывод будет:

<ul id="thumbsPhotos">
     <li title="/images/1alvaston-hall-relaxing-lg.jpg"  onclick="updatePhoto(this.title)"><img src="/images/1alvaston-hall-relaxing-sl.jpg"  width="56" height="56"></li>
     <li onclick="updatePhoto(this.title)" title=""><img src="" width="56" height="56"></li>
     <li onclick="updatePhoto(this.title)" title=""><img src="" width="56" height="56"></li>
</ul>

Ответы [ 4 ]

3 голосов
/ 22 октября 2008

Не проверено, но вот регулярное выражение, которое может сделать это для вас ...

// find:
<li ([^>]*)src="(.*?)"(.*?)>

// replace:
<li $1title="$2"$3>

Обновление : протестировано и работает на вашем примере.

Если вы хотите запустить это на стороне клиента с помощью Javascript (по любой причудливой причине), вы можете сделать это:

var ul = document.getElementById("thumbsPhotos");
ul.innerHTML = ul.innerHTML.replace(
    /<li ([^>]*)src="(.*?)"(.*?)>/g,
    '<li $1title="$2"$3>'
);
2 голосов
/ 22 октября 2008

Не ответ, но это не очень семантический способ делать вещи. Откуда это? Почему на элементе li всегда присутствует src?

Предполагая, что вам нужна опция javascript, вы можете использовать что-то вроде jquery:

$(document).ready(function() {
    $("li[src], li[src='']").each(function() {
        var li = $(this);
        li.attr("title", li.attr("src"));
        li.removeAttr("src");
    });
});
0 голосов
/ 22 октября 2008

Если вам нужно сделать это один раз, вы не найдете и не замените работу?

В противном случае я согласен, что регулярное выражение - лучший вариант.

0 голосов
/ 22 октября 2008

Скорее всего, вы можете использовать замену RegEx, которая соответствует атрибуту src, и выполнить преобразование. Я вижу, что вы также хотите добавить атрибут title, даже если нет совпадения, это также должно быть возможно.

Я попытаюсь найти для этого несколько примеров RegEx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...