Javascript 如何用Jquery替换特定的li内容?

Javascript 如何用Jquery替换特定的li内容?,javascript,jquery,html,Javascript,Jquery,Html,我只想针对标记,这些标记位于标记中,该标记具有,其“href”包含字符串.doc 更合理地说,我就是这么做的: <div class="widget_ex_attachments"> <ul> <li> <i class="fa fa-file-word-o"></i> <a href="uploads/2014/09/Parellel-univers

我只想针对
标记,这些标记位于
  • 标记中,该标记具有
    ,其“href”包含字符串.doc

    更合理地说,我就是这么做的:

    <div class="widget_ex_attachments">
        <ul>
                <li>
                <i class="fa fa-file-word-o"></i>
                <a href="uploads/2014/09/Parellel-universe.docx">Parellel universe</a>
                </li>
    
                <li>
                <i class="fa fa-file-word-o"></i>
                <a href="uploads/2014/09/The-List-v5.6.xls">The List v5.6</a>
                </li>
    
                <li>
                <i class="fa fa-file-word-o"></i>
                <a href="uploads/2014/09/cv.pdf">cv</a>
                </li>
       </ul>
    </div>
    
    $('.widget_ex__附件a[href*=“.doc”]”)。父('li')。替换为('';
    
    -当然,问题是整个
  • 内容被新的
    标签所取代。 我试过:

    $( '.widget_ex_attachments a[href*=".doc"]' ).parent('li').replaceWith( '<i class="fa fa-file-pdf-o"></i>' );
    
    $('.widget_ex_附件a[href*=“.doc”]”)。父项('li:first')。替换为('';
    $('.widget_ex_附件a[href*=“.doc”]”)。父项('li:first child')。替换为('';
    $('.widget_ex_附件a[href*=“.doc”]')。父项('li i')。替换为('');
    
    -都不管用

    有人能告诉我如何定位这个标记元素吗。谢谢。

    试试:

    $( '.widget_ex_attachments a[href*=".doc"]' ).parent('li:first').replaceWith( '<i class="fa fa-file-pdf-o"></i>' );
    $( '.widget_ex_attachments a[href*=".doc"]' ).parent('li:first-child').replaceWith( '<i class="fa fa-file-pdf-o"></i>' );
    $( '.widget_ex_attachments a[href*=".doc"]' ).parent('li i').replaceWith( '<i class="fa fa-file-pdf-o"></i>' );
    
    $('.widget_ex__附件a[href*=“.doc”]).prev('i').replacetwith('');
    
    您可以使用获取
    li
    中的
    i
    元素:

    $( '.widget_ex_attachments a[href*=".doc"]' ).prev('i').replaceWith( '<i class="fa fa-file-pdf-o"></i>' );
    
    另一种方法是使用查找具有该链接的
    li
    元素:

    $('.widget_ex_attachments a[href*=".doc"]').prev().replaceWith('<i class="fa fa-file-pdf-o"></i>');
    
    $('.widget_ex_附件li').has('a[href*=”.doc“]).find('i').replacetwith('');
    
    尝试查找:

    $('.widget_ex_attachments li').has('a[href*=".doc"]').find('i').replaceWith('<i class="fa fa-file-pdf-o"></i>');
    
    $('.widget_ex_附件a[href*=“.doc”]')。父项('li')。查找('i')。替换为('');
    
    在行动中看到它:


    因此,将其替换为包括
  • 标记在内的整个代码。因此,您基本上将前面的
    的类别从
    fa-file-word-o
    更改为
    fa-file-pdf-o
    ?为什么不这样做呢?
    $('.widget_ex_attachments li').has('a[href*=".doc"]').find('i').replaceWith('<i class="fa fa-file-pdf-o"></i>');
    
    $('.widget_ex_attachments a[href*=".doc"]' ).parent('li').find('i').replaceWith( '<i class="fa fa-file-pdf-o"></i>' );