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