用特定类中的图像替换包含文本“edit”的所有链接

时间:2013-10-21 14:23:05

标签: jquery

我将所有包含文字“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>

3 个答案:

答案 0 :(得分:0)

我会使用过滤功能:

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

上面只会返回包含单词“Edit”的锚点,这些锚点不在类.section-nav的div中。

不确定上面的.html是否会起作用(直接来自您示例中的代码),因为似乎有很多单引号

Example

答案 1 :(得分:-1)

Fiddle Example

<强> jquery的

    $('a:contains("Edit")').parent().parent(":not(.section-nav)").html("NEW HTML HERE").css('display','inline-block');

答案 2 :(得分:-1)

试试这个:

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

...假设您想要的是替换html并更改所有“Edit”链接的css,这些链接不在具有class section-nav的div中。