2010-03-26 32 views
8

Tôi đang cố xác định chiều rộng của một chuỗi. Tôi đang sử dụng đoạn mã sau nhưng nó luôn luôn trả về 0. Có vẻ như đó là phần tử span được tạo và chưa có trong phần thân trang, chiều rộng jQuery() trả về 0. Có cách nào để tôi có thể nhận được chiều rộng của văn bản mà không cần đến việc tạo mã html giả trong trang?Chiều rộng jQuery() trả về 0 cho phần tử span được tạo khi đang di chuyển?

Cảm ơn :)

$('<span>test</span>').width(); // width = 0 
$('span.width').width(); // returns a width value 

<body><span class="width">test</span></body> 

Trả lời

8

Phần tử phải có trong DOM để tính chiều rộng. Nếu bạn cần tính toán điều này trước khi người dùng có thể xem phần tử, hãy thử ẩn nó trước khi đưa nó vào DOM.

+0

@Dominic Cảm ơn bạn đã chỉnh sửa :) –

1

Bạn có thể thử thêm sự kiểm soát với css tài sản visibility: hidden tới trang trước khi nhận được kích thước, do đó tránh sự cần thiết để làm cho nguyên tố này có thể nhìn thấy.

Không có cách nào để lấy chiều rộng mà không thêm điều khiển, vì nhiều thứ khác nhau có thể ảnh hưởng đến chiều rộng.

0

Bạn không có thể thiết lập chiều rộng của một phần tử nội tuyến, do đó bạn sẽ có thể luôn luôn nhận được 0, hoặc null, hoặc không xác định, hoặc một số biến đổi của đầu ra sẽ không giúp bạn chút nào.

0

Nếu bạn đặt chiều rộng bằng CSS nội tuyến, tôi tin chiều rộng trả về giá trị chính xác. Không lý tưởng, nhưng có thể được chấp nhận cho một số ngữ cảnh.

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