Re: [問題] jquery的has使用方式

看板Ajax作者 (^^)時間15年前 (2010/02/23 17:34), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《knives ()》之銘言: : 因為我要用jquery產生innerHTML : 用$('#contain').append('<div id="tab'+id+'>某id的innerHTML</div>'); : 其中希望每一個id只能產生一組,所以必須判斷 : contain是否已經有同一個id產生了 : 我看jquery有一個has : 我看官網範例,有一段是這樣用的 : $("ul").append("<li>" + ($("ul").has("li").length ? "Yes" : "No") + : "</li>"); : 所以我想說has傳回來是不是就是布林值 : 我就把我的判斷寫成這樣 : if ( $('#contain').has('div#tab'+id) ) : { //檢查是否該id已產生過了 : alert("已經產生過一次了"); : return false; : } : else : { : $('#contain').append('<div id="tab'+id+'>某id的innerHTML</div>'); : } : 但是我第一次執行的時候,卻是已經跑到警告視窗的判斷裡面 : 這並不是我要的結果 : 請問一下,我該怎麼寫才能判斷 : 謝謝 這東西是新東西(since 1.4) , 難怪我剛剛一時想不起來有這個東西, 剛翻了一下 doc, 這東西應該是filter , 所以她回傳的是[符合這個條件的元素] , 而不是你所謂的 boolean. $("ul").has("li") 是說 , 找出所有ul 裡面有包li這各子元素的, 回傳的是一個 ul 的集合 . 你可以透過取得回傳的集合的數量(如果是0就是沒找到)來判斷. ex. $("ul").has("li").size() == 0 或 $("ul").has("li").length==0 這其實在他的doc 範例可以找的到. -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.173.93

02/23 17:49, , 1F
那有沒有其他方法,能夠達成我的需求判斷
02/23 17:49, 1F

02/23 17:53, , 2F
直接抓$("#contain #"+id).length 有沒有>0 會不會較快?
02/23 17:53, 2F

02/23 19:22, , 3F
那就乾脆判斷那個id 有沒有產生啦 $("#id").size()==0
02/23 19:22, 3F
文章代碼(AID): #1BWw4VCu (Ajax)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1BWw4VCu (Ajax)