このjQuery(1.8.3)コードを実行すると、長さが1より大きい場合でも、常に「in」アラートが表示されます。
私がやっていることは、メニューに要素を動的に追加することです。ifは、この要素がまだ存在しないことを確認することです。
私も試してみ== 0
まし=== 0
たが、結果は同じです...
これがJSフィドルです:http://jsfiddle.net/mHhwq/4/
$(".sidebarit a.olink").click(function(event){
iframe_url = $(this).attr("href");
sidebar_id = '#' + iframe_url.replace(/[/.]/g, '');
alert('sidebar_id: ' + sidebar_id);
// create the sidebar if it doesn't exist
if ($(sidebar_id).length < 1) {
alert("in");
$("#sidebar_nav ul").append('<li></li>');
$("#sidebar_content").append('<div id="' + sidebar_id + '" style="display:none;"></div></div>');
} else { alert("out"); }
// don't follow the link
event.preventDefault();
});
FireBugでは、長さが1に等しいことがわかりますが、それでもブロックに入ります。
私は何が間違っているのですか?
アップデート:
私の間違いは#
、間違った場所にを追加したことでした...