문제

나는 JetPack을 실험하고 있으며 주어진 HTML 페이지에서 몇 년을 구문 분석 한 다음 Wiki 페이지에 대한 링크로 연도를 마무리하고 싶습니다. 나는 jQuery에서 코드를 시도했지만 거기에서 작동하지만 이제는 JetPack에서 사용하고 있으며 오류 $ (doc) .replace가 함수가 아닙니다. 나는 확실히 jQuery / Jetpack을 처음 접 했으므로 아마도 정말 쉬운 것을 놓치고 있지만 당신의 도움은 대단히 감사합니다.

편집 : 나는 제안을 시도했지만 여전히 붙어 있습니다. 이상한 점은 이것입니다

jQuery 함수 작동 :

(function($) {
    $.fn.clickUrl = function() {  
            var regexp = /([1-2][0-9][0-9][0-9])/gi;
            this.each(function() {
            $(this).html(
                  $(this).html().replace(regexp,'<ahref=\"http://nl.wikipedia.org/wiki/$1\">$1<\/a>')
            );
        });
    return $(this);
    }
})(jQuery);

그리고 기본적 으로이 기능을 Jetpack에 '포트'하고 싶습니다.

이것은 JetPack에 대한 jQuery 함수의 '오래된'비 작업 포트입니다.

jetpack.statusBar.append({  
    html: "Hyperlink Years",  
    width: 80,  
    onReady: function(widget){  
        $(widget).click(function(){  
        var regexp = /([1-2][0-9][0-9][0-9])/gi;
        var doc = jetpack.tabs.focused.contentDocument;
            $(doc).each(function() {
            $(this).html(
                    $(doc).replace(regexp,'<a href=\"http://nl.wikipedia.org/wiki/$1\">$1<\/a>'));
            });
       return $(doc); 
     });  
   }  

});
도움이 되었습니까?

해결책

나는 Jetpack에 익숙하지 않지만 당신의 jQuery는 상당히 엉망인 것 같습니다.

"doc"이 HTML 문서 인 경우 $ (doc) .Each ()를 수행하는 것은 실제로 의미가 없습니다. 그것은 단 한 번만 반복되며 "이것은"는 doc와 동일합니다.

그런 다음 나중에 $ (doc) .replace (regexp, ...)를 수행하지만 ()는 jQuery 함수가 아닙니다. .html (). replare (regexp, ...)를하고 싶을 수도 있습니다. 그러나 작동하지 않기 때문에이 작업을 수행하지 않는 것이 좋습니다. 다른 URL 또는 페이지의 HTML에해도 문서의 숫자를 교체하게됩니다.

자세한 내용은 jQuery 텍스트 노드에 대해서는이 질문 또는 Google을 참조하십시오.jQuery를 사용하여 텍스트 문자열을 찾으십니까?

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