2014-06-17 3 views
0

"* -chars"가 클래스로 들어있는 요소 범위를 검색하는 함수를 작성하려고합니다. 요소를 찾았 으면 특정 클래스 (예 : max-chars)를 가져 와서 -의 앞에 클래스의 일부를 추출합니다. 요소가 - 또는 심지어 - chars를 포함하는 다른 클래스를 포함 할 수 있으므로 간단한 분할을 사용할 수 없습니다.클래스 이름에서 텍스트 추출

지금까지 내가 관리 한 다음

var getLimitType = function (el) { 
    var output = el.find('*[class*="-chars"]').filter(function() { 
     return this.className.match(/(?:^|\s)-chars/); 
    }); 

    var limitType = output.val().split("-").shift(); 
    var getVal = el.find('input').attr('maxlength'); 
    return limitType+'_'+getVal; 
}; 

을 limitType 대신 문자열의 jQuery를 객체에 분할을 수행하려고으로 분명히 이것은 그러나 내가 알아낼 수 없습니다 작동하지 않습니다 빈 줄에 무엇을 넣을 것인가, 나는 그 객체로부터 모든 클래스를 취할 어떤 것이 필요하다. 내가 찾고있는 것을 풀어서 하나만 텍스트 문자열로 반환한다. .find해야한다 - ('[ "문자를"= 클래스 *] *')

var getLimitType = function (element) { 
    var ml = element.find('input').attr('maxlength'); 
    if (element.hasClass('exact-chars')) { 
     return 'exact_'+ml; 
    } else if (element.hasClass('min-chars')) { 
     return 'min_'+ml; 
    } else if (element.hasClass('max-chars')) { 
     return 'max_'+ml; 
    } else { 
     return 0; 
    } 
}; 
+0

.find : –

+0

모든 클래스를 가져 와서 split (" ")과 같은 공백으로 분할하고 * -chars 클래스를 찾으려면 반복합니다. –

+1

@ C-link는 모두 기능적으로 동일합니다. 그러나 성능의 관점에서 보는 동안 그들은 다릅니다 ...! –

답변

0

꽤 그러나 나는이 해결 방법으로 내 문제를 해결하기 위해 관리, 바람직한 답을 발견하지 마십시오 ("[class * ="- chars "] ')