jQuery选择器:contains和:first错误。是什么引起问题?

时间:2019-03-25 14:49:34

标签: jquery contains userscripts tampermonkey

我正在尝试使用$('div:contains(text)')选择元素,但是在控制台中出现错误:

  

TypeError:matchExpr [type] .exec不是一个函数       在Sizzle.tokenize(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:2175)       在Sizzle.select(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:2625)       在Function.Sizzle [找到](userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:850)       在jQuery.fn.init.find(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:2878)       在新的jQuery.fn.init(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:2988)       在Window.jQuery(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:144)       在short_quest_desc(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:11271)       在评估时(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:12167)       在Window.tms_8e14efa9_4d54_4213_afef_2dcc6a22a1d6(userscript.html?id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6:12183)       在:2:494

当我尝试使用$('.class:first')时遇到同样的问题。 其他选择器工作正常。我正在使用带有Tampermonkey扩展名和

的chrome / firefox
  // @require     http://code.jquery.com/jquery-3.3.1.js
    // @grant   unsafeWindow
    // @grant   GM_log
    // @grant       GM_getValue
    // @grant       GM_setValue
    // @grant       GM_deleteValue
    // @grant       GM_listValues
    // @grant       GM_addStyle

我尝试使用$.noConflict();,然后将所有脚本放入:jQuery(document).ready(function($){..}); 那没有帮助。我试图在Tampermonkey设置jquery库中删除并再次获取它们-什么也没有。我读了一些解决方案,但无济于事。

我使用的div是因为div,其文本没有id,并且位于不同的位置。另一件事是,当我使用google或msdn jQuery时,要求得到V [g] .exec不是函数错误。 像$(div[attribute=value])这样的其他选择器也可以正常工作。 “文本”中没有任何特殊字符,我知道它区分大小写。

即使这样: console.log($('#msgFullText .msg-quest div:contains(Karawana)')); 不起作用。

什么会引起问题? 我该如何解决? Page不使用jQuery,所以没有冲突。

这是短代码:

// ==UserScript==
// @require     http://code.jquery.com/jquery-3.3.1.js

// @name        PDmod
// @description Modyfikacje Blood Wars by Pożeracz Dusz!
// @version     0.0.1

// @match       https://bloodwars.interia.pl/*
// @match       https://*.bloodwars.interia.pl/*
// @match       https://*.bloodwars.net/*
// @match       https://*.bloodwars.pl/*
// @match       https://beta.bloodwars.net/*
// @match       https://old.bloodwars.interia.pl/*

// @grant       unsafeWindow
// @grant       GM_log
// @grant       GM_getValue
// @grant       GM_setValue
// @grant       GM_deleteValue
// @grant       GM_listValues
// @grant       GM_addStyle

// @noframes
// @nocompat Chrome
// ==/UserScript==
jQuery(document).ready(function($){
    var nick_p = GM_getValue(link_id + 'nick');
    var link_id = $(location).attr('host').split('.')[0];
    function remember_nick() {
        if ($('.stats-player .me').length > 0) {
            GM_setValue(link_id + 'nick', $('.stats-player .me').text());
        }
    }
    function array_add(array, sumarray) {
        if (array.length > 0) {
            $.merge(sumarray, array);
        }
    }
    "use strict";
   console.log($('#msgFullText .msg-quest div:contains(Karawana)'));
    function short_quest_desc() {
        console.log($('#msgFullText .msg-quest div:contains(Karawana)'));
        if (GM_getValue(nick_p + link_id + 'shortquest') === true && $('#msgFullText .msg-quest').length > 0){// && $('.msg-quest b:contains("Sprawdzian")').length > 0 || $('.msg-quest b:contains(Test)').length > 0 || $('.msg-quest b:contains(Próba)').length > 0 || $('b:contains(Raport z wyprawy.)').length > 0)) {
            var cash = 0;
            var cash1;
            var is_event;
            var arcane;
            var onetime_item;
            if ($('.msg_metadata_openingInfoTextContent').length > 0) {
                is_event = $('.msg_metadata_openingInfoTextContent').last().text();
            } else {
                is_event = $('.msg-quest b.enabled').text();
            }
            if ($('#msgFullText .msg-quest > div:contains("arkana:")').length) {
                arcane = $('.msg-quest > div:contains("arkana:")').text();
            }
            if ($('.msg-quest > div:contains("używa przedmiotu")').first().length) {
                onetime_item = $('.msg-quest > div:contains("używa przedmiotu")').first().html().replace(/\n/g, '');
            } else {
                onetime_item = 'Brak jednoraza';
            }
            var luck = $('div:contains("(SZCZĘŚCIE)")').first().text();//.split('(');
            console.log(luck);
            luck = (luck[1]).replace(')', '');
            var luck1 = $('.msg-quest > div[value*="(SZCZĘŚCIE)"]').first().text().split('(');
            luck1 = (luck1[1]).replace(')', '');
            var exp = 0;
            var blood = 0;
            var items = [];
            var e_items = [];
            var ldb_items = [];
            var ldsk_items = [];
            var db_items = [];
            var dsk_items = [];
            if ($('#msgClickToReadFullText').length > 0) {
                $('#msgClickToReadFullText').click();
            }
            $('.msg-quest > span.item-link').each(function () {
                cash1 = $(this).attr('onclick');
                cash1 = $.parseHTML(cash1);
                cash1 = $(cash1).find('.item-desc.itemDescContainer span:contains(PLN)').prop('outerHTML'); //
                cash1 = parseInt($(cash1).text().replace(' ', '').replace('PLN', ''));
                cash += cash1;
                if (($(this).text()).substr(0, 5) === 'Epick') {
                    e_items.push(($(this)));
                } else if ($(this).text().substr(0, 20) === "Legendarna Doskonała" || $(this).text().substr(0, 20) === "Legendarny Doskonały" || $(this).text().substr(0, 20) === "Legendarne Doskonałe") {
                    ldsk_items.push(($(this)));
                } else if ($(this).text().substr(0, 16) === "Legendarna Dobra" || $(this).text().substr(0, 16) === "Legendarny Dobry" || $(this).text().substr(0, 16) === "Legendarne Dobre") {
                    ldb_items.push(($(this)));
                } else if ($(this).text().substr(0, 9) === "Doskonała" || $(this).text().substr(0, 9) === "Doskonały" || $(this).text().substr(0, 9) === "Doskonałe") {
                    dsk_items.push(($(this)));
                } else if ($(this).text().substr(0, 5) === "Dobra" || $(this).text().substr(0, 5) === "Dobry" || $(this).text().substr(0, 5) === "Dobre") {
                    db_items.push(($(this)));
                }
            });
            $('.msg-quest > p:contains(Zdobyłaś), p:contains(Zdobyłeś)').each(function () {
                var eb = $(this).text().split('.');
                exp += parseInt(eb[0].replace(/[^0-9\.]/g, ''));
                blood += parseInt(eb[1].replace(/[^0-9\.]/g, ''));
            });
            array_add(db_items, items);
            array_add(dsk_items, items);
            array_add(ldb_items, items);
            array_add(ldsk_items, items);
            array_add(e_items, items);
            $('.msg-quest').empty();
            if (is_event) {
                $('#msgFullText').append("<span class=enabled>Event podczas wypraw: " + is_event + "</span></br>").css('text-align', 'center');
            }
            $('#msgFullText').append("<span class=enabled>" + arcane + "</span></br>");
            $('#msgFullText').append("<span class=enabled>" + onetime_item + "</span></br>");
            $('#msgFullText').append("<span class=enabled>" + luck + "</span></br>");
            if (luck1 !== luck) {
                $('#msgFullText').append("<span class=enabled>" + luck1 + "</span></br>");
            }

            $('#msgFullText').append("<span class=enabled>Doświadczenie zdobyte podczas wypraw: " + exp + " pkt.</span></br>");
            $('#msgFullText').append("<span class=enabled>Krew zdobyta podczas wypraw: " + blood + " l.</span></br>");
            $('#msgFullText').append("<span class=enabled>Znalazłeś podczas wypraw przedmioty o łącznej wartości: " + cash.toLocaleString('pl-PL') + " PLN.</span></br></br>");
            $('#msgFullText').append("<span class=enabled>W trakcie wyprawy znalazłeś przedmioty: </span></br>");
            $(items).each(function () {
                $('#msgFullText').append("<span class='item-link item-caption'" + $(this).prop('outerHTML') + '</br>');
            });
        }
    }
    (function () {
        (short_quest_desc());
    })();
});

console.log($('#msgFullText .msg-quest div:contains(Karawana)'));不起作用,无论我使用(“ Karawana”)还是(Karawana)。

0 个答案:

没有答案