заменить все ссылки, содержащие текст «редактировать» с изображением, за исключением определенного класса

0

У меня есть все ссылки, содержащие текст "edit", замененный изображением. Я хочу, чтобы это произошло на моем сайте, за исключением определенного класса.

У меня есть этот код прямо сейчас:

$('a:contains("Edit")').html("<img src='<%= asset_path 'edit.png' %>'/>").css('display',  
'inline-block');

и я попытался:

$('a:contains("Edit")').not$("div[class='section-nav']").html("<img src='<%= asset_path 
'edit.png' %>'/>").css('display','inline-block');

но это опускает все действие везде, а не только в указанном классе div.

htlm для конкретного div, который мне не нужен.

<div id="ideas_navigation" class="section-nav">
    <li>
        <a href="/ideas/bpul_dishes/edit">Edit Idea</a>
    </li>
</div>

html для ссылок, которые я хочу заменить текстом:

<a href="/ideas/bpul_dishes/edit">Edit</a>
  • 0
    замените .not$("div[class='section-nav']") на .not($("div[class='section-nav']")) при отсутствии скобок / скобок.
  • 0
    Ваш вопрос не ясен. быть ясно, что вы хотите сделать
Показать ещё 2 комментария
Теги:

3 ответа

0
Лучший ответ

Я бы использовал функцию фильтрации:

$('a:contains("Edit")').filter(function() {
    return $(this).closest('div.section-nav').length == 0;
}).html("<img src='<%= asset_path 'edit.png' %>'/>");

Вышеизложенное будет возвращать якоря, содержащие слово "Edit", которые не входят в div с классом .section-nav.

Не уверен, что указанный выше .html будет работать (он берется прямо из кода в вашем примере), поскольку, похоже, много одиночных кавычек

пример

  • 0
    мой HTML в моем вопросе
  • 0
    @anmaree Вышеприведенное должно хорошо работать с вашим HTML - вы добавили его после того, как я ответил. Новая скрипка с обновленной HTML-структурой
Показать ещё 6 комментариев
-1

Попробуй это:

$('*:not(div.section-nav) a:contains("Edit")')
    .html("<img src='<%= asset_path 'edit.png' %>'/>").css('display','inline-block');

... предполагая, что вы хотите заменить html и изменить css для всех ссылок "Изменить", которые не входят в div, имеющих раздел класса-nav.

  • 0
    это не для входных данных, это для якорных тегов - это не то, что он ищет.
  • 0
    У меня была опечатка, это уже исправлено. Спасибо!
Показать ещё 2 комментария
-1

Пример скрипки

JQuery

    $('a:contains("Edit")').parent().parent(":not(.section-nav)").html("NEW HTML HERE").css('display','inline-block');
  • 0
    Я думаю, что класс section-nav OP прикреплен к div, содержащему ссылки, а не сами ссылки, поэтому это не отфильтрует ссылки внутри этого div.
  • 1
    это ничего не меняет
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню