0

我将所有包含文本“编辑”的链接都替换为图像。我希望这发生在我的整个网站上,除了特定的课程。

我现在有这个代码:

$('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>
4

3 回答 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是否可行(它直接取自您示例中的代码),因为似乎有很多单引号

例子

于 2013-10-21T14:44:53.783 回答
-1

小提琴示例

jQuery

    $('a:contains("Edit")').parent().parent(":not(.section-nav)").html("NEW HTML HERE").css('display','inline-block');
于 2013-10-21T14:25:57.273 回答
-1

尝试这个:

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

...假设您想要替换 html 并更改所有不在具有类 section-nav 的 div 中的“编辑”链接的 css。

于 2013-10-21T14:26:02.507 回答