2016-08-08 8 views
0

Ich benutze $(this).find("ul").filter(":first").height();, um erste ul.Holen Höhe ul zuerst

Aber die Höhe ist nicht definiert, dann ist die Höhe -20

Meine ul:

ul style="width: 252px; min-width: 820px; padding-bottom: 20px;" class="jqx-tree-dropdown-root" 

Mit freundlichen Grüßen.

+0

Wie erhalten Sie negative Höhe? –

+3

können Sie es im Schnipsel reproduzieren? Teilen Sie auch, worauf sich dieser Kontext bezieht. –

+1

Ist das Element sichtbar? Wird das Element gerendert? – epascarello

Antwort

0

Ich habe eine schnelle jsFiddle erstellt, die ziemlich gut zeigt, dass Ihr Code gut funktionieren sollte. Allerdings sind Sie wahrscheinlich mit "this" falsch :)

https://jsfiddle.net/qoxub22u/

Html Mockup

<div class="container"> 
    <h5>First one has height of 40px</h5> 
    <ul style="height:40px"> 
    <li>Test</li> 
    <li>Test1</li> 
    </ul> 

    <h5>Second one has height of 70px</h5> 
    <ul style="height:70px"> 
    <li>Test</li> 
    <li>Test1</li> 
    <li>Test2</li> 
    <li>Test3</li> 
    </ul> 
</div> 
<button id="submit">Get height</button> 

JQuery Teil

$("#submit").click(function() { 

    /* Replace .container with ur this selector */ 
    var height = $('.container').find("ul").filter(":first").height(); 

    alert(height); 
}); 
+0

$ (das) ist ein div. $ (dies) ist das gleiche: var self = $ (this); alert (self.find ("ul"). filter (": first"). height()); Die UL-Höhe ist nicht definiert. –

+0

Es scheint, als ob Sie nicht sehr klar verstehen, wie $ (this) funktioniert. Es ist ziemlich gut hier erklärt - http://stackoverflow.com/questions/1051782/jquery-this-vs-this – user2831723

+0

Hallo, das ist kein Problem. Mein Code: var treeViews = $ (selector) .find (". Treeview"); treeViews.each (function() { var selbst = $ (this); alert (self.find ("ul"). Filter (": first"). Height()); } –

0

$ (this) ist ein div.

$ (this) ist das gleiche:

var self = $ (this); alert (self.find ("ul"). Filter (": first"). Height());

Die UL-Höhe ist nicht definiert.