2

I'm having an issue dynamically setting the width of a ul element in my website.

Below is the jQuery I'm uusing

var button = $("#navbar");
alert(button);
var count = $("#header li").length;
alert(count);
$("#navbar").style.Width = count * 110

Here's the HTML

<div id="header" class="clearfix">
    <div class="clearfix hidden">
        <img src="/Content/Images/main-logo.png">
    </div>
    <div id="navbar">
        <ul>
            <li id="home">
                home
            </li>
            <li id="portfolio">
                portfolio
            </li>
            <li id="about">
                about
            </li>
        </ul>
    </div>
</div>

The "alert(button)" returns [object Object] so it's not null (at least my understanding of it) but I get the error mentioned in the title whenever I try to set the width of it.

Anyone know what I'm doing wrong?

4

3 に答える 3

5

次のコードのいずれかを使用する必要があります

$("#navbar")[0].style.width = count * 110

また

$("#navbar").width(count * 110)

styleは DOM 要素のプロパティであり、デフォルトで$("#navbar")はプロパティを含まない jquery オブジェクトであるためです。style

于 2013-07-24T01:45:00.513 に答える
1

styleDOM プロパティですが、jQuery オブジェクトのプロパティではありません。jQuery を使用して幅を設定する場合は、css getter/setterまたはwidth 関数を直接使用します。

$("#navbar").width(count * 110);
$("#navbar").css('width', (count * 110) + "px");
于 2013-07-24T01:44:57.230 に答える
1

を使用して jQuery 要素に取り組んでい$("#navbar")ます。バニラ JavaScript を使用して幅を設定する場合:

$("#navbar")[0].style.width = count * 110  //note that the width property is not capitalized

または、jQuery のwidthメソッドを使用します。

$("#navbar").width(count * 110);
于 2013-07-24T01:46:19.890 に答える