gpt4 book ai didi

javascript - 使用 jQuery addClass 添加类时脚本不起作用

转载 作者:行者123 更新时间:2023-11-28 05:07:04 26 4
gpt4 key购买 nike

我在 jQuery 中找到了一个检测文件类型的脚本:

$(function(){
jQuery.fn.LiFileType = function(options){
var options = jQuery.extend({
//gh: 25 //Высота пунктов меню
},options);
return this.each(function(index) {
var loadFile = $(this);
var file = loadFile.attr('href')
var reWin = /.*\\(.*)/;
var fileTitle = file.replace(reWin, "$1"); //выдираем название файла для w*s
reUnix = /.*\/(.*)/;
var fileTitle = fileTitle.replace(reUnix, "$1"); //выдираем название для *nix
var RegExExt =/.*\.(.*)/;
var extPre = fileTitle.replace(RegExExt, "$1");//и его расширение
ext = extPre.substr(0,3)
var pos;
if (ext){
switch (ext.toLowerCase())
{
case 'doc': pos = '(DOC)'; break;
case 'bmp': pos = '(BMP)'; break;
case 'jpg': pos = '(JPG)'; break;
case 'jpeg': pos = '(JPEG)'; break;
case 'mp3': pos = '(MP3)'; break;
case 'avi': pos = '(AVI)'; break;
case 'wmv': pos = '(WMV)'; break;
case 'flv': pos = '(FLV)'; break;
case 'pdf': pos = '(PDF)'; break;
case 'txt': pos = '(TXT)'; break;
case 'xls': pos = '(XLS)'; break;
case 'rar': pos = '(RAR)'; break;
case 'zip': pos = '(ZIP)'; break;
default : pos = '' ; break;
};
// Создаем специальный класс для нового класса
var cssRuleClass = 'filIcon_' + index;
$(this).addClass(cssRuleClass);
var cssRule = '.' + cssRuleClass + ':after{ content:\" '+pos+'\";}';
$('<style>').text(cssRule).appendTo('head');
};
});
};
$(".filetype").LiFileType();

//layout js
$('.filetype').click(function(){return false;});
})
.fileIcon:after {

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<a href="file.doc" class="filetype" >file.doc</a>
<a href="file.bmp" >file.bmp</a>
<a href="file.jpg">file.jpg</a>
<a href="file.jpeg">file.jpeg</a>
<a href="file.png">file.png</a>
<a href="file.gif">file.gif</a>
<a href="file.psd">file.psd</a>
<a href="file.mp3">file.mp3</a>
<a href="file.wav">file.wav</a>
<a href="file.ogg">file.ogg</a>
<a href="file.avi">file.avi</a>
<a href="file.wmv">file.wmv</a>
<a href="file.flv">file.flv</a>
<a href="file.pdf">file.pdf</a>
<a href="file.exe">file.exe</a>
<a href="file.txt">file.txt</a>
<a href="file.xls">file.xls</a>
<a href="file.rar">file.rar</a>
<a href="file.zip">file.zip</a>

只有当我用手写链接类 filetype 时一切正常...但是当我添加 $('a').addClass('filetype'); 给我错误 jquery.LiFileType.js:10 Uncaught TypeError: Cannot read property 'replace' of undefined

可能是什么问题?已经 2 天寻找解决方案:(

UPD也许用 span 试试这个效果?例如添加数组并显示他包裹在标签 a 上:

var fileIcon = $( "a" ).wrap( "<span class='another'></div>" );

然后添加一个伪类?

最佳答案

问题似乎出在这里:

var fileTitle = file.replace(reWin, "$1"); //выдираем название файла для w*s
reUnix = /.*\/(.*)/;
var fileTitle = fileTitle.replace(reUnix, "$1"); //выдираем название для *nix

删除第二个 fileTitle 之前的 var 并重试

关于javascript - 使用 jQuery addClass 添加类时脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39784759/

26 4 0
文章推荐: c++ - 防止作用域枚举可复制/可移动?
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com