문제

현재 다음 jQuery 선택기를 사용하여 링크를 비활성화하려고 합니다.

$("a[href$=/sites/abcd/sectors]").removeAttr("href");

문제는 때로는 페이지에서 href가 항상 소문자로 표시되지 않을 수도 있다는 것입니다.이런 일이 발생하면 선택기가 더 이상 일치하지 않습니다.

이 문제를 해결하는 방법을 아는 사람이 있나요?대소문자를 무시하도록 이번 한 번 동작을 변경할 수 있나요?

도움이 되었습니까?

해결책

나는 이것에 직접 부딪쳤다.대소 문자없이 비교할 수 있도록 논리를 약간 전환했습니다.조금 더 많은 작업이 필요하지만 적어도 작동합니다.

$('a').each(function(i,n) {
    var href = $(n).attr("href");
    href = href.toLowerCase();
    if (href.endsWith('/sites/abcd/sectors'))
        $(n).removeAttr('href');
});

당신은 스스로 알아내야 할 것입니다 endsWith 논리.

다른 팁

jQuery는 확장되도록 만들어졌습니다.이를 수정하거나 대소문자를 구분하지 않는 선택기를 고유한 유형으로 추가할 수 있습니다.

릭 스트랄:jQuery를 사용하여 콘텐츠 검색 및 사용자 정의 선택기 필터 만들기

jQuery에서 "is" 함수를 사용할 수 있습니다.대소문자를 구분하지 않습니다.

   $("a").each(function() {
     if ($(this).is("a[href$=/sites/abcd/sectors]")) {
       $(this).removeAttr('href');
     }
   })

먼저 이것은 유효하지 포함되어 있으므로 표현식 \ ,

메타 문자(예: !"#$%&'()*+,./:;<=>?@[\]^``{|}~ ) 처럼

이름의 리터럴 부분인 경우 두 개의 백슬래시를 사용하여 문자를 이스케이프해야 합니다. \\.

원본: http://api.jquery.com/category/selectors/

그래서 당신은 탈출해야합니다 / 에게 \\/

그래서 당신의 표정은 $("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top