2010-10-26 47 views
0

我正在尋找一種方法來搜索當前點擊的元素上的ID。某些文本的jQuery搜索ID

例子:

$('.t_element').click(function(){ 
      if(!$('.t_element [id*=meta]')) { 
       transModal($(this)); 
       translateText(); 
      } 
     }); 

基本上,我需要說,如果點擊的元素ID不包含單詞「元」,然後繼續腳本,但是這是行不通的。

對不起,如果這是混亂。

謝謝! 丹尼斯

工作實例:

if (!$(this).is('[id*=meta]')) { 
    transModal($(this)); 
    translateText(); 
} 

回答

1

Sarfraz的版本應該工作。另一種方法是使用.is()

if ($(this).is('[id*=meta]')) { 
    transModal($(this)); 
    translateText(); 
} 

或者,正如帕特里克說,如果你想如果元素包含 「元」 的ID行事:

if ($(this).not('[id*=meta]')) { 
    transModal($(this)); 
    translateText(); 
} 
+0

這工作正是我想要它!謝謝!!! – dennismonsewicz 2010-10-26 18:46:55

+0

@dennismonsewicz - 在你的問題中,你聲明你只想在代碼中'meta'不是*的情況下運行代碼。那麼你究竟想要哪個? – user113716 2010-10-26 19:05:13

+0

哎呀,是的。謝謝,帕特里克。 – lonesomeday 2010-10-26 19:11:39

1

嘗試用length這樣的:

$('.t_element').click(function(){ 
    if($('[id*="meta"]', $(this)).length === 0) { 
    transModal($(this)); 
    translateText(); 
    } 
}); 

或者:

$('.t_element').click(function(){ 
    if($(this).attr('id').indexOf('meta') <= -1) { 
    transModal($(this)); 
    translateText(); 
    } 
}); 
+0

修復了您的拼寫錯誤。 – lonesomeday 2010-10-26 18:42:04

+0

@lonesomeday:哦,我很抱歉,我再次編輯它:( – Sarfraz 2010-10-26 18:43:03

+0

您的所有意見,我的問題都沒有了,爲什麼這麼一個想法 – kobe 2010-10-26 18:48:39

2

如果元素的ID不會改變,那麼我只是將測試包含在選擇器中,以便您不分配不需要的處理程序.click()

$('.t_element:not([id*=meta])').click(function(){ 
    transModal($(this)); 
    translateText(); 
}); 

這使用與the attribute contains selector沿the :not() selector,以防止處理程序從被分配給其中ID包含meta元件。