0

뭔가가 붙어있어서 도움이 필요합니다.특정 요소를 클릭 할 때만 상황에 맞는 메뉴 표시

사용자가 페이지의 특정 요소를 마우스 오른쪽 버튼으로 클릭 할 때만 컨텍스트 메뉴를 표시하려고합니다.

getElementByClassName (...)을 사용하여이 문제를 해결하고 각 요소에 onClick 수신기를 추가한다고 생각했습니다. 사용자가 그 중 하나를 클릭하면 컨텍스트 메뉴가 만들어집니다. 나중에 모든 것이 완료되면 콘텐츠 메뉴를 제거하십시오.

문제는 내가 그 요소의 전체 클래스 이름을 가지고 있지 않다는 것입니다. 모든 것이 "이야기"로 시작한다는 것을 알고 있습니다.

나는 이것을하는 방법에 대해 잘 모릅니다. 정규 표현식을 사용하고 클래스 이름이 story 인 모든 요소를 ​​가져 오는 방법이 있습니까? 아니면 불가능합니다. 사전에

감사합니다,

답변

0

정규식 선택기 수 있습니다 this library있다.

<div class="story-blabla"></div> 

$("div:regex(class, story.*)") 

그러나 전체 라이브러리를 구현하지 않을 수도 있습니다. 다른 해결책이 있습니다.

$('div').filter(function() { 
    return this.class.match(/story.*/); 
    }) 

이렇게하면 원하는 개체가 반환됩니다.

+0

사용하여이 작업을 수행 할 수 있습니다. 나는이 프로젝트에서 jquery를 사용하지 않고 모든 일을 처리 할 수 ​​있었고 그렇게 유지하고 싶습니다. 그 말로는 거지는 선택자가 될 수 없습니다. P, 해결책을 확인해 보겠습니다. – Shane

+0

글쎄, IE는 [getElementsByClassName] (https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName)을 지원하지 않지만 그 링크의 마지막 예를 확인하십시오. – gberger

+0

당신의 대답을'$ ('div') 시도했습니다. filter (function() {return this.class})'는 빈리스트를 반환합니다. 결과적으로 나는 match를 사용할 수 없습니다. '$ ('div')는 예상대로 div 클래스를 반환합니다. – Shane