作者TonyQ (^^)
看板Ajax
標題Re: [問題] jquery的has使用方式
時間Tue Feb 23 17:34:21 2010
※ 引述《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
1F:→ knives:那有沒有其他方法,能夠達成我的需求判斷 02/23 17:49
2F:推 JYHuang:直接抓$("#contain #"+id).length 有沒有>0 會不會較快? 02/23 17:53
3F:→ TonyQ:那就乾脆判斷那個id 有沒有產生啦 $("#id").size()==0 02/23 19:22