Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 是否根据文件扩展名更改列表样式类型图像?_Jquery_Css_Iframe - Fatal编程技术网

Jquery 是否根据文件扩展名更改列表样式类型图像?

Jquery 是否根据文件扩展名更改列表样式类型图像?,jquery,css,iframe,Jquery,Css,Iframe,我试图根据iframe中链接上的文件扩展名更改列表样式图像。下面的代码是到目前为止我所拥有的,它将pdf图标应用于iframe中的所有,而不仅仅是pdf。我做错了什么?希望你能帮忙 $(document).ready( function () { $( "iframe#mframe" ).load(function () { if($('a[href$=".pdf"]')) { $('iframe#mframe').contents().find( "li" ).css(

我试图根据iframe中链接上的文件扩展名更改列表样式图像。下面的代码是到目前为止我所拥有的,它将pdf图标应用于iframe中的所有,而不仅仅是pdf。我做错了什么?希望你能帮忙

$(document).ready( function () {
$( "iframe#mframe" ).load(function () {
    if($('a[href$=".pdf"]')) {
        $('iframe#mframe').contents().find( "li" ).css("list-style-image" , "url('/wp-content/themes/mintranet/img/icons/pdf_icon.gif')" );
    }
    else if ($('a[href$=".docx"]')) {
        $('iframe#mframe').contents().find( "li" ).css("list-style-image" , "url('/wp-content/themes/mintranet/img/icons/docx_icon.png')" );
    }
    else if ($('a[href$=".wmv"]')) {
        $('iframe#mframe').contents().find( "li" ).css("list-style-image" , "url('/wp-content/themes/mintranet/img/icons/wmv_icon.png')" );
    }
});
}))

谢谢你们,永远感谢你们的帮助

编辑:虽然我使用了埃克罗波利斯的答案,但我找到了另一种方法:

        $('iframe#mframe').contents().find( 'li a[href*=".pdf"]' ).before('<img src="/wp-content/themes/mintranet/img/icons/pdf_icon.gif" />');
$('iframe#mframe').contents().find('li a[href*=“.pdf”])。在('')之前;

而且它工作完美无瑕,除了这样一个事实:如果我在这些文件夹中有数百种文件类型,它将不是最具语义的方式!尽管如此,我的问题已经得到了回答,为此,我非常感谢所有参与其中的人!祝你一切顺利

像这样的怎么样?将文件类型的字符串重新用于指向正确图像的路径。不管怎样,我认为.each()函数就是解决这个问题所需要的。您有if语句,每个语句中的选择器将始终找到相同的元素

$( "iframe#mframe a" ).each(function( index ) {
  var type = $(this).attr('src').slice( -3 );
  $(this).css("list-style-image" , "url('/wp-content/themes/mintranet/img/icons/"+type+"_icon.gif')" );
});

虽然您已经接受了答案,但我认为我应该提供另一种方法:

$('iframe#mframe li').css('list-style-image', function(){
    return "url('/wp-content/themes/mintranet/img/icons/" + $(this).find('a').attr('href').split('.').pop() + "_icon.gif')"
});
参考资料:

  • JavaScript:
  • jQuery:

太好了,您的相关HTML到底是什么样子的?谢谢您的回复!这很好地工作,而且更加语义化!我确实找到了另一种方法,但语义比你的要少很多,所以谢谢你!)谢谢你的意见!非常感谢!