2012-09-13 73 views
1

當id匹配正則表達式時,有沒有辦法調用函數?在正則表達式匹配上調用函數

我有一個應用程序,我有大約20左右divs調用onclick相同的功能,我試圖擺脫onclicks,只是通過id找到這些div。例如divs id的開始方式是:sameId_xxx

這就是我正在工作,但我想知道如果我可以把條件放在函數調用,所以它不會被調用頁面上的每個div。

$("div").click(function() { 
    var id = this.id; 
    if (id.match(/sameId_/)) { 

    } 
} 
+0

你爲什麼不使用課堂? – jurgemaister

+0

一些有不同的類。設計的必要性 – user1134179

+1

是的,但是你可以添加另一個類來將它們與其他div分開,比如'mySpecialKindOfDiv'。這不會干擾CSS。 – jurgemaister

回答

2

嘗試了jQuery「屬性包含選擇」:

$('div[id*="sameId_"]').click(function() { 
// Do stuff 
}); 
+1

根據肖恩欽的回答上面的屬性開始選擇器會更準確 – rbginge

0

我認爲更好的過濾器的所有的div使用必要條件和未來的附加處理。

例如:

$('div') 
    .filter(function() { return $(this).attr('id') % 2 }) 
     .click(function(){alert($(this).attr('id'))});​ 

JSFiddle

現場演示或者你可以在你的代碼中使用var id = $(this).attr('id')

0

我覺得其他的答案(含濾波上的ID前面)是更好的,但是對於後人,這裏是你實際上問:

$("div").click(function() { 
    var id = this.id; 
    if (id.match(/(sameId_)(.)+/)) { 
     console.log("matched"); 
    } 
}​);​ 

其中「sameId_」在案件的敏感性展示你想要匹配什麼。