我想用jquery获取图像名称及其一些图像的扩展名。我使用split方法。在Firefox中它是可以的但我知道它获取带有域名的图像的完整地址,因此在获得图像扩展名(。)之前它有一些(。)s。
有更好的方法吗? 这是我使用的代码:
var imagename = $("img",this).attr("src").split(".")[0];
var imageextension = $("img",this).attr("src").split(".")[1];
感谢。
答案 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 );
});