Jquery &引用;语法错误,无法识别的表达式;用于图像的高度和宽度
我无法使用下面的代码获得图像的高度和宽度。我不断得到Jquery &引用;语法错误,无法识别的表达式;用于图像的高度和宽度,jquery,css,image,height,width,Jquery,Css,Image,Height,Width,我无法使用下面的代码获得图像的高度和宽度。我不断得到未捕获错误:语法错误,无法识别的表达式:…ge/p1010352.jpg $('body').on('click', '#view-large', function() { // VARIABEL var image = $(this).attr('data'); var image_src = '../blog/images/uploaded/large/p1010352.jpg'; var image_he
未捕获错误:语法错误,无法识别的表达式:…ge/p1010352.jpg
$('body').on('click', '#view-large', function() {
// VARIABEL
var image = $(this).attr('data');
var image_src = '../blog/images/uploaded/large/p1010352.jpg';
var image_height = $(image_src).naturalHeight();
var image_width = $(image_src).naturalWidth();
console.log(image_height);
// VISA & CSS
$('.blog-image-view').show().css({
'background-image': 'url(' + image_src + ')',
'margin-top': '-' + (image_height / 2) + 'px',
'margin-left': '-' + (image_width / 2) + 'px',
'height': image_height + 'px',
'width': image_width + 'px'
});
});
这段代码的目的,是点击一个链接,获得所选图像的大图像(,我只使用了一个链接-同样的问题)。我已经用高度
、宽度
和客户端高度
、客户端宽度
进行了测试。同样的错误
解决此问题后,我将删除上述代码中的链接
如何解决此问题?您似乎试图使用图像源作为选择器,并以这种方式动态确定图像的高度和宽度。这是行不通的,因为URL不是有效的jQuery选择器(有充分的理由;这会带来严重的安全隐患)
您要做的是获取服务器端的高度和宽度,或者将图像加载到隐藏的div中,然后确定其尺寸。这是因为您正在执行
$(url)。naturalHeight()
不是有效的选择器,请添加一个要获取的id或类或图像标记
我添加了一个
.blog图像视图{
背景色:#22222;
显示:无;
}
代码中的错误是您将url作为类选择器传递
这里有一个修正:
更改以下内容:
var image_src = 'http://nhagyavi.myftp.org/blog/images/uploaded/large/p1010352.jpg';
var image_height = $(image_src).naturalHeight();
var image_width = $(image_src).naturalWidth();
到
是什么使您认为URL是有效的CSS表达式?这是因为您正在执行的$(URL).naturalHeight()
不是有效的选择器,请向其添加anm id或类或图像标记fetch@Clive:什么?我只将大图像直接链接到我的服务器。在我正在工作的网站上,我有/blog/images/upload/large/p1010352.jpg
,而不是完整的URL。@TusharGupta噢。这就是我所遗漏的……您正在以字符串形式将URL传递给jQuery函数,该函数需要一个选择器表达式来定位DOM中的元素。URL不是一个有效的值,很有可能是因为显而易见的原因。在您的回答和Tushar的评论之后,我睁大了眼睛:)非常感谢您的演示和解释:)@ErikEdgren您的欢迎:)
var image_src = 'http://nhagyavi.myftp.org/blog/images/uploaded/large/p1010352.jpg';
var temp_img = document.createElement("img");
temp_img.src = image_src;
var image_height = $(temp_img).height();
var image_width = $(temp_img).width();