2010-08-28 122 views
2

我想從幾個選擇只有一個類,條件是選定的類有任何div-descendant的ID爲"#exampleId"JQuery:從一個字符串中刪除字符/選擇

我覺得這樣的事情可以工作,但是事實並非如此:

$(".myClass").has(div).attr("id","#exampleId"). 

第二個問題:我有擺脫第一哈希「#」的。 因爲字符串(#exampleId)已經動態生成... 它看起來是這樣的:

var myString = "#exampleId" 

而下面的方法沒有奏效:提前

myString.replace('#',''); 

感謝

回答

0

您只需在選擇器中傳遞has()的ID即可。無需刪除#

$(".myClass").has("div#exampleId") 

甚至做一個選擇:

$(".myClass:has(div#exampleId)") 
+0

謝謝,解決了! 但只是爲了好奇: 特定的字符串替換工作會像上面所述的方法嗎? – algro 2010-08-28 13:32:45

+0

algro:是的,這將刪除所有'#'字符。請記住將結果存儲在某處,因爲'replace'不會修改字符串本身,它會返回修改過的字符串。 – 2010-08-28 18:55:48

1

你已經接受了答案,但無論如何,我會拋出這樣一個在那裏。

如果你有比頁面上的幾個元素.myClass多,它很可能是更有效的選擇#exampleId第一,然後使用parents()穿越到第一.myClass

$('#exampleId').parents('.myClass:first'); 

或者,如果ID是一個變量,這樣做:

var myString = "#exampleId"; 

$(myString).parents('.myClass:first'); 

這些會給你第一父母有.myClass#exampleId的。

如果您願意,也可以使用.closest('.myClass')