2013-07-16 34 views
7

Tôi đang cố gắng lấy thuộc tính nội tuyến của một phần tử bằng cách sử dụng jquery: width: auto. Ngay khi tôi nhận được chiều rộng, .width() trả về giá trị px thay vì auto. Đây là một ví dụ về những gì tôi cần:JQuery - Nhận chiều rộng: tự động từ kiểu nội tuyến

Tôi đã một img với phong cách nội tuyến này setted:

<img id='image' style='position: absolute; height: 200px; width: auto; top: 25px; left: 50px;' src='http://tinyurl.com/k8ef66b'/> 

tôi cần phải quấn hình ảnh đó trong một a, để làm cho các nhấp chuột được hình ảnh. Tôi cũng cần phải nhận được phong cách hình ảnh và di chuyển nó đến thẻ neo:

//--- get height, width and entire style 
var imgHeight = $("#image").height(); 
var imgWidth = $("#image").width(); 
var imgStyle = $("#image").attr("style"); 

//---remove inline style from the img 
$("#image").removeAttr("style"); 

//--- create the <a>, add the inline style 
var anch = $("<a href='#'></a>"); 
$(anch).attr("style", imgStyle); 

//--- add back to the img it's width and height 
//--- the problem is here: imgWidth does not contain 'auto' 
$("#image").css({"width" : imgWidth, "height" : imgHeight}); 

//--- wrap the img 
$("#image").wrap(anch); 

đây là một fiddle với mã: http://jsfiddle.net/cBXAz/1/

bất kỳ ý tưởng? Làm cách nào để có được auto trong phong cách nội tuyến đó? Tôi cần phải cung cấp width: auto cho hình ảnh thay vì giá trị px.

Cảm ơn trước, Trân trọng

+1

'$ ("# hình ảnh") css ({ "width": "auto"}) '??? – Morpheus

+0

Khi tôi nhìn vào fiddle tôi không thấy 'chiều cao: tự động' trên hình ảnh. –

+0

@KevinBowersox Tôi đã viết "chiều rộng: tự động", không phải "chiều cao" :) – BeNdErR

Trả lời

7
document.getElementById('image').style.width; 

Hoặc cho cách hơn jquery của:.

$("#image")[0].style.width; 
+0

Trong trường hợp này, bạn sẽ nhận được chiều rộng thực tế của hình ảnh, không phải 'auto' :) – Morpheus

+0

http://jsfiddle.net/JA2ds/ nếu bạn sử dụng nó trước khi thay đổi chiều rộng nó hoạt động chắc chắn –

+0

Cách jQuery khác là' $ ("# image"). width() ' hoặc '$ (" # image ") .ss ('width')' – jQuery00

Các vấn đề liên quan