2014-12-21 4 views
1

HTML 사이트가 있으며 괄호가있는 텍스트를 사용하여 요소를 찾고 싶습니다. 예를 들어 다음과 같은 범위의 div가 있습니다.괄호가있는 텍스트가 포함 된 요소 찾기

#container 
.div 
    %span= "example (1)" 
.div 
    %span= "example (22)" 

"example (22)"텍스트가있는 스팬을 가져오고 싶습니다. 나는 그 요소들을 얻기 위해 사용하는 방법을 가지고있다. 나는 해결책을 시도했다 :

getElement: (title, count) => 
    #title = 'example', count = 22 
    # First try 
    $("#container span:contains(#{title} (#{count})") 
    # Second try 
    filter = new RegExp(title+"//("+count+"//)") 
    $("#container span").filter (i, el) ->      
            return !!$(el).text().match(filter) 

그러나 나는 아무것도 발견하지 못했다. 내 방법을 개선하는 방법? 모든 해답을 가져 주셔서 감사합니다.

+1

jsfiddle.net에서 데모를 만들 것을 제안합니다. – charlietfl

답변

0
getElement = (title, count) -> 
    spans = document.querySelectorAll '#container span' 
    filter = Array.prototype.filter 
    filter.call spans, (span)-> 
    text = span.textContent.trim() 
    text is "#{title} (#{count})" 

element = getElement "example", 22 
console.log element[0]?.textContent 

왜 내가 RegExp를 사용하려고하는지 알지 못합니다. 당신이 어떤 패턴을 필요로한다면, 그것은 가능할 수 있습니다. 그러나 그것은 무겁다. 텍스트를 정적 문자열과 일치 시키려면 JavaScript의 ==, CoffeeScript의 is을 통해 비교하면됩니다. 위의 소스는 jQuery가 아닌 vanilla로 작성되었지만 내가 원하는 말로 충분하다고 생각합니다.

관련 문제