سؤال

أقوم بتجربة Jetpack وأرغب في تحليلها على مدار السنوات في صفحة HTML معينة ثم لف السنة برابط إلى صفحة Wiki. لقد جربت الكود في مسج وهناك يعمل ولكن الآن أنا أستخدمه في Jetpack ويعطي خطأ $ (Doc). Replace ليست وظيفة. أنا بالتأكيد جديد في مسج / 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:

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، ولكن يبدو أن مسجك قد افسدت تماما.

إذا كان "DOC" هو مستند HTML، فعندئذ القيام $ (Doc). كلا () لا معنى له حقا. سيكون فقط حلقة مرة واحدة، و "هذا" سيكون هو نفسه الوثيقة.

ثم تقوم بذلك في وقت لاحق من $ (DOC). مكان (Regexp، ...)، ولكن استبدال () ليس وظيفة مسج. ربما كنت ترغب في القيام به .html (). استبدال (Regexp، ...)؛ ومع ذلك، لا أوصي بذلك القيام بذلك لأنه لن يعمل - ستنتهي فقط باستبدال أي أرقام في المستند، حتى لو كانت جزءا من عنوان URL آخر أو HTML من الصفحة.

لمزيد من المعلومات، راجع هذا السؤال أو جوجل لعقد Jquery Text:العثور على سلسلة النص باستخدام jquery؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top