2012-06-25 2 views
1

jquery를 사용하여 div에서 텍스트 문자열을 검색하는 가장 쉬운 방법은 무엇입니까? 특히 id가있는 div를 검색하고 $(this).text()이 포함되어 있는지 확인하고 싶습니다. 이 기능의 목적은 div에 요소를 추가 할 수 있지만 동일한 문자열을 동일한 div에 반복해서 쓰지 못하도록하는 것입니다. (당신이 정확한 우연의 일치가 필요한 경우)요소를 검색하여 특정 문자열이 포함되어 있는지 확인

+1

우리는 마크 업의 일부를 참조해야합니다. div에 텍스트 만 포함되어 있거나 다른 HTML을 탐색해야합니까? I.E., div의 자식 요소 또는 div 자체의 텍스트 만 검색 하시겠습니까? – jackwanders

+0

그냥

이고 jquery .append()를 사용하여 텍스트가 삽입되며 if 문을 사용하여 특정 텍스트가 포함되어 있는지 확인해야합니다. –

답변

2

내가 특별히 ID로 사업부를 검색하고 $(this).text() 포함 된 경우보고 싶어요.

는 내가 아마 String#indexOf 갈 거라고 생각 :

var div = $("#theId"), 
    text = $(this).text(); 
if (div.text().indexOf(text) === -1) { 
    // It doesn't have it, add it 
    div.append(text); // Or whatever 
} 
+0

고마워. 완벽하게 작동합니다. 그건 그렇고, 무엇이 요점입니까? 나는 전에 3을 보았지만 그 점을 결코 이해하지 못했습니다. –

+0

@GavinSellers : JavaScript에서는'=='이 타입 강제 변환을 수행하므로'0 == ""'being'과 같은 재미있는 것을 얻을 수 있습니다. '==='는 타입 강제 변환을하지 않을 것이고, 그렇지 않으면 피연산자가 같은 타입이고 단락 ('false'를 평가)하는 것을 확인하는 것입니다. 일치하는 경우 해당 값이 비교됩니다. –

+0

도움 주셔서 감사합니다. –

0

당신은 :contains 선택 또는 filter 방법 중 하나를 사용할 수 있습니다

$("div[id]").filter(function() { 
    return $(this).text() == str; 
}); 
+0

"=="를 사용하면 "포함"과 같은 기능을 수행하지 않습니다. 당신은 아마도 indexOf 나 정규식을 사용하여 (.filter를 위해) – Ian

+1

@ianpgall : "contains"에 의해 OP가 무엇을 의미하는지에 달려있다. –

관련 문제