IE中的拆分方法错误

时间:2011-03-02 10:36:18

标签: jquery

我想用jquery获取图像名称及其一些图像的扩展名。我使用split方法。在Firefox中它是可以的但我知道它获取带有域名的图像的完整地址,因此在获得图像扩展名(。)之前它有一些(。)s。

有更好的方法吗? 这是我使用的代码:

 var imagename = $("img",this).attr("src").split(".")[0];
 var  imageextension = $("img",this).attr("src").split(".")[1];

感谢。

2 个答案:

答案 0 :(得分:2)

// get the last path fragment
var lastFragment = $('img', this).attr('src').match(/\/([^\/]+)$/)[1];
// split dot fragments
var lastFragmentSplit = lastFragment.split('.');
// name is first
var imageName = lastFragmentSplit[0];
// extension is second
var imageExtension = lastFragmentSplit[1];

注意:如果您有names.with.dots.then.extension.jpg等文件名,这个简单的解决方案将无法正常工作。

它在IE中无法正常工作的原因是,即使您提供的原始属性只有文件名,IE也会在您请求src时解析完整的绝对URI。 Firefox完好无损。

答案 1 :(得分:0)

您的代码非常无效。您正在查询所有img对象两次。尝试:

$('img').each(function(index) {
    var parts = this.attr( 'src' ).split( '.' );
    console.log( parts );
});