2012-02-06 33 views
5

Trong jQuery, chúng ta có thể sử dụng innerHeight để lấy chiều cao của một phần tử (bao gồm cả padding nhưng không biên giới.).Tương đương Dojo của innerHeight() của jQuery là gì?

$("selector").innerHeight(); 

Làm cách nào để có được cùng giá trị của dojo?

gì giải pháp của tôi là sử dụng

dojo.contentBox() //get the height of content box 
dojo.style(node, "borderTopWidth") //get width of border-top 
dojo.style(node, "borderBottomWidth"). //get width of border-left 

Có cách nào dễ dàng để làm điều đó?

Trả lời

1

Thật không may, tôi không nghĩ rằng có một cách dễ dàng hơn để làm điều đó.

Bạn về cơ bản có ba lựa chọn:

dojo.contentBox(node) // excludes border, padding and margin 
dojo.position(node) // includes border and padding; excludes margin 
dojo.marginBox(node) // includes border, padding and margin 

Vì vậy, bạn cần phải làm những gì bạn đề nghị. Sử dụng dojo.contentBox(), sau đó tính toán riêng các chiều rộng đường viền trên cùng và dưới cùng.

Hoặc bạn có thể muốn đặt <div> bên trong <div>, để bạn có thể đặt đường viền trên div ngoài và giữ phần đệm trên div bên trong. Sau đó bạn sẽ có thể nhận được chiều cao yêu cầu từ việc gọi số dojo.position() cho div bên trong.

<div id="outer" style="border: solid #000 1px;"> 
    <div id="inner" style="height: 20px; padding: 2px;">.</div> 
</div> 
<script> 
    alert(dojo.position("inner").h) // 24 
</script> 
+0

tốt, vị trí có thể lấy dữ liệu thực như giải pháp của bạn, nhưng tôi không thể thay đổi cấu trúc của html. do đó div bên trong không tồn tại đối với tôi và tất cả các thuộc tính được định nghĩa cho div bên cạnh của chúng ta ("# outer"), bao gồm đường viền padding và blablabla. –

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