2010-02-10 5 views
1

가 들어있는 텍스트에 포함 :jQuery를 패스 매개 변수는 방법 절

function UnderlineText() { 
    $(".bar").filter(":contains(foo)").css("text-decoration", "underline"); 
} 

그러나 나는 통과하고 싶습니다 매개 변수를 foo 문자열 대신 메서드에 추가하십시오. 사용되지 않는 .contains

에 대한 이전 질문에서 볼 수 있지만, 나는 그것이 동작하지 않습니다 수

나는 다양한 순열을 시도했다.

이것을 달성하는 가장 좋은 방법은 무엇입니까?

function UnderlineText(searchText) { 
    $(".bar").filter(":contains(*searchText*)").css("text-decoration", "underline"); 
} 

답변

4
function UnderlineText(searchText) { 
    $(".bar").filter(":contains("+searchText+")").css("text-decoration", "underline"); 
} 

문제를 해결할 것입니다.

+0

예이 기능은 매우 효과적입니다. 그것은 나를 위해 일하는 것을 막고 있던 단일 및 이중 따옴표의 조합 이었음에 틀림 없습니다. –

0

선택기가 작동하는 경우에도 전체 요소 (p, span, div 등)를 선택하므로 간단한 css() 호출을 사용하면 전체 텍스트 블록에 밑줄이 생깁니다. 특정 부분을 강조하기 위해, 당신은 같은 것을 사용해야합니다 :

function underline(query) { 
    $('.bar').filter(':contains("' + query+ '")').each(function() { 
    var html = $(this).html(); 
    html = html.replace(query, '<span style="text-decoration: underline">' + query + '</span>'; 
    $(this).html(html); 
    }); 
} 

그것이 속성에있는 동안 쿼리를 교체하거나 somesuch 수 있으므로이, 여전히 좋지 않다, 그러나 그것은 물건을 받고 향해 걸음 따로 밑줄이 그었다.

+0

글쎄, 분명히 이것이 아주 좋은 것 같아. 아마도 더 우아한 해결책이있을 수 있지만 검색된 텍스트에 밑줄을 긋는 것은 훌륭한 아이디어입니다. –