:contains 말고 일치하는 것만 구분하는 방법이 있을까요?

:contains 말고 일치하는 것만 구분하는 방법이 있을까요?

QA

:contains 말고 일치하는 것만 구분하는 방법이 있을까요?

본문

:contains 말고 일치하는 것만 구분하는 방법이 있을까요?

 

다수의 a링크에 포함된 문자중

현재 보고있는 '페이지제목'을 포함하고 있는 a에

클래스명에 on를 주고자해서

 

$("a:contains('<?php echo $g5['title']; ?>')").addClass("on");

 

이렇게 했는데 

 

문제는

어떤페이지명이 '바나나'고 

다른페이지명이 '꿀바나나'

다른페이지명이 '바나나우유'

이런식이면

구분을 못하고 모두다 선택되어 버리는데

이럴경우 해결방법이 뭐가 있을까요????? ^^

이 질문에 댓글 쓰기 :

답변 4

filter()로 해보았습니다


$('a').filter(function() {
    return $(this).text().indexOf("바나나") === 0;
}).css('color', 'red');

`indexOf` 함수를 활용하시는걸 추천합니다.

 

var title = "<?php echo $g5['title']?>";

if ($(this).parents("a").attr("href").indexOf(title) > -1)

   // 여기서 적용

};

아 href의 포함된 값으로 구분하려는것은 아니구요


<li class="depth2"><a href="#" target="_self" class="on">바나나</a></li>
<li class="depth2"><a href="#" target="_self" class=" ">꿀바나나</a></li>
<li class="depth2"><a href="#" target="_self" class=" ">바나나우유</a></li>

이런식입니다.
그래서 이것을
$("li.depth2 a:contains('<?php echo $g5['title']; ?>')").addClass("on");
이렇게 해놨습니다. ^^

아 ㅎㅎ 그럼 그냥 단순하게 



<li class="depth2"><a href="#" target="_self" <?php if(strpos($g5['title'], '바나나') !== false) { ?> class="on" <?php } ?>>바나나</a></li>

 

이렇게 하면 안되나요? ㅋㅋ 저기 바나나랑 꿀바나나가 변수에 담겨서 나오는게 아니라면 ㅎㅎ 


$("li.depth2 a").filter(function() {
        return $(this).text() === "바나나";
    }).addClass("on");
답변을 작성하시기 전에 로그인 해주세요.
전체 123,732 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT