이 코드를 찾습니다. 사용자 입력 user_choice
등 1
또는 23
또는 31
같은 수 있지만 코드는 예컨대 때문에, 특정 <span>
을 찾는데 실패 사용자 입력 user_choice = 1
은 1
과 21
및 31
이며 모두 의 숫자는1
입니다. 특정 <span>
이 정확히1
인 것을 찾아야합니다.
이 목적으로 contain
선택기가 잘못되었지만 제대로 작동하려면 어떻게 수정해야합니까?
이 코드를 찾습니다. 사용자 입력 user_choice
등 1
또는 23
또는 31
같은 수 있지만 코드는 예컨대 때문에, 특정 <span>
을 찾는데 실패 사용자 입력 user_choice = 1
은 1
과 21
및 31
이며 모두 의 숫자는1
입니다. 특정 <span>
이 정확히1
인 것을 찾아야합니다.
이 목적으로 contain
선택기가 잘못되었지만 제대로 작동하려면 어떻게 수정해야합니까?
예, contains
선택기가 잘못되었습니다. 이름에서 알 수 있듯이 정확히 일치하는 요소 만이 아니라 부분 텍스트로 지정된 텍스트가 포함 된 요소와 일치합니다.
당신은 .filter()
을 사용하여 시도 할 수 :
var matchingElements = $('span').filter(function(index) {
return $(this).text() === user_choice;
});
if(matchingElements.length === 0) {
...
}
어때?
$('span').each(function(){
if ($(this).html() == user_choice){
return true;
}
});
그것이 1 == 1과 같이 반환, 그것은 "범위"의 모든 태그를 비교 각 기능을 시도, 더 나은 http://api.jquery.com/html/의 text() 메소드 –
을 사용하십시오 : "일치하는 요소 세트의 첫 번째 요소의 HTML 내용 가져 오기". 그래서 html()은 태그 자체가 아닌 내용을 반환합니다. –
예. 내 잘못이야. outerHTML이 태그를 제공합니다. –
filter
방법을 사용할 수 있습니다.
var len = $('span').filter(function(){
return $(this).text() == user_choice;
}).length;
이
$('span').each(function(){
if ($(this).text() == "my_choosen_var"){
return true;
}
});
@Ravi'.html()'메소드는'innerHTML'을 반환하므로, 요소의'outerHTML'가''이면'1'이됩니다. –
그러나 .each()에 전달 된 함수에서'true'를 반환해도 일치하는 요소 집합을 변경하는 데는 아무런 변화가 없다는 문제가 있습니다. –
@AnthonyGrist 내 잘못입니다. 릴 혼란스러워. –
+1을'==='+1하고 OP를 하나 더 멋진 기능으로 도입했습니다 –
이 모든 해는 jQuery를 사용하여 저는 .filter() (버전 1.0 이후 임에도 불구하고)를 보지 못했다고는 믿을 수 없습니다. 이것은 내가 제공 한 것보다 훨씬 나은 해결책입니다! –