식별자(id)에 대한 와일드카드 선택기가 있습니까?
특정 명명 방식을 공유하는 알 수 없는 식별자가 있는 경우 jQuery를 사용하여 한 번에 모두 잡을 수 있는 방법이 있습니까?
// These are the IDs I'd like to select
#instance1
#instance2
#instance3
#instance4
// What do I need to add or how do I need to modify this jQuery selector in order to select all the IDs above?
("#instanceWILDCARD").click(function(){}
starts-with selector()'^=
속성은 다음과 같이 ID에 대해 작동합니다.
$("[id^=instance]").click(function() {
//do stuff
});
하지만, 당신의 요소들에 공통적인 클래스를 주는 것을 고려해보세요. 예를 들어, (나는 내 자신을 망친다.).instance
, 다음 셀렉터를 사용합니다.
$(".instance").click(function() {
//do stuff
});
ID가 아닌 클래스를 일치시키려면 클래스가 여러 값을 가질 수 있기 때문에 구문이 좀 더 많이 사용됩니다.
// handle elements like <div class="someclass1"></div>
$('[class^="someclass"]').click(function() {
// do stuff
});
// handle elements like <div class="foo someclass1"></div>
$('[class*=" someclass"]').click(function() {
// do stuff
});
(jQuery의 Selector 기능을 확장하여) 자신만의 필터 셀렉터를 만드는 것에 대해 아무도 언급하지 않았다는 것이 놀랍습니다.여기서 나는 와일드카드 문자열을 허용하는 "likeClass"와 "likeId"라고 불리는 와일드카드 셀렉터를 만들었고, 일치하는 모든 요소(Regex matching과 유사)를 찾을 것입니다.
코드:
$.expr[':'].likeClass = function(match){
return $('[class*=" '+ match +'"]');
};
$.expr[':'].likeId = function(match){
return $('[id*=" '+ match +'"]');
};
사용 예시:
자, 당신이 .content-1, .content-2, .content-n과 비슷한 이름을 가진 여러 디브 요소를 가지고 있었다고 가정해 보겠습니다.등을 선택할 수 있습니다.이제 케이크!
$('div:likeClass(content-')); // Class 이름이 비슷한 모든 요소를 반환합니다. content-*
아니면
$('div:likeClass(content-)'; // 유사한 ID를 가진 모든 요소를 반환합니다. content-*
아 그래, 한가지 더...체인도 가능합니다. :)
$('li:likeId(slider-content-)').hide().addClass('sliderBlock').first().fadeIn('fast');
맛있게 드세요.
jQuery가 있으면 추가적인 expur나 화려한 것이 필요 없습니다.
jQuery('[class*="someclass"]').click(function(){
});
jQuery('[id*="someclass"]').click(function(){
});
참고: https://stackoverflow.com/a/2220874/2845401
이 ID는 ID이지만 다음과 유사한 작업을 수행할 수 있습니다.
$("[id^='instance']").click(...)
이는 다소 비싸지만 a) 요소의 유형 또는 b) 다음과 같은 DOM의 일반 위치를 지정할 수 있다면 도움이 됩니다.
$("#someContentDiv span[id^='instance']").click(...)
그[id^='...']
selector는 기본적으로 "ID가 이 문자열로 시작하는 요소를 찾습니다. 다음과 유사합니다.id$=
(ID는 이 문자열로 끝납니다) 등.
종합 목록은 여기 jQuery Docs 페이지에서 확인할 수 있습니다.
당신은 그냥 당신을 위해class = "instance"
모든 사용자에게 해당 사용자를 선택합니다.$('.instance')
?
당근으로.
$("div[id^=instance]").hide();
이것이 ID 와일드카드 질문에 대한 유일한 정답입니다.
$('[id*="Wild card in double quotes"]')
이렇게 하면 "와일드 카드가 큰따옴표로 표시됩니다.그리고 또 있어요!!!", "와일드 앞에서 더 많은 BS를"큰따옴표로 표시된 와일드카드"입니다.
'[]' 태그와는 다른 따옴표를 사용해야 합니다.
우리는 이렇게 할 수 있습니다.
$(document).ready(function () {
$('[id*=btnOk]').live("click", function () {
});
});
언급URL : https://stackoverflow.com/questions/3697542/is-there-a-wildcard-selector-for-identifiers-id
'it-source' 카테고리의 다른 글
워드 프레스 사용자 지정 게시 유형 범주 (0) | 2023.10.13 |
---|---|
Revolution Slider에서 이전 URL을 새 URL로 교체해야 함 (0) | 2023.10.13 |
JAXB : 모든 요소에 네임스페이스 접두사 필요 (0) | 2023.10.08 |
기본값으로 주식을 관리하도록 우커머스 가져오기 (0) | 2023.10.08 |
고유 인덱스가 열 검색 성능에 더 좋습니까? (PGSQL & MySQL) (0) | 2023.10.08 |