Я пытаюсь выбрать элемент, используя $('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)
в eval (userscript.html? id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6: 12167)
at Window.tms_8e14efa9_4d54_4213_afef_2dcc6a22a1d6 (userscript.html? id = 8e14efa9-4d54-4213-afef-2dcc6a22a1d6: 12183)
в: 2: 494
У меня та же проблема, когда я пытаюсь использовать $('.class:first')
.
Другие селекторы работают нормально. Я использую Chrome / Firefox с расширением Tampermonkey и
// @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 с текстом no id и он находится на разных позициях. Другое дело, что когда я использую Google или MSDN JQuery требуют, я получаю V [g] .exec не является ошибкой функции.
Другие селекторы вроде $(div[attribute=value])
отлично работают. В тексте нет специальных символов, и я знаю, что он чувствителен к регистру.
Даже это:
console.log($('#msgFullText .msg-quest div:contains(Karawana)'));
не работает.
Что может вызвать проблему?
Как я могу решить это?
Страница не использует 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)'));
не работает, независимо от того, использую ли я («Каравана») или (Каравана).