Я пытаюсь использовать jquery, чтобы найти текст на основе его имени класса и изменить его. В основном у меня есть эта структура:
<td class = "walletBalance">0.0000 XBT</td>
Итак, я пытаюсь:
$("tbody").find("tr").each(function() { //get all rows in table
var ratingTd = $(this).find('td.walletBalance’);//Refers to TD element
if (ratingTd.text() == “0.0000 XBT”) {
ratingTd.text(’changed text’);
}
});
Что я делаю неправильно?
Для большего понимания структуры html
В частности, какое значение я пытаюсь изменить
PS: я использую тампермонки
// ==UserScript==
// @name testingalarm
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.hey
// @grant none
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==
(function() {
'use strict';
// Your code here...
$("tbody").find("tr").each(function() {
var ratingTd = $(this).find('td.walletBalance');
if (ratingTd.text() == "0.0000 XBT") {
ratingTd.text('changed text');
}
});
})();
Кстати, эта сигнализация работает:
// ==UserScript==
// @name testingalarm
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.some
// @grant none
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==
(function() {
'use strict';
// Your code here...
$(document).ready(function() {
alert('WINNING');
});
})();
PSS: после ответа Манарена
// ==UserScript==
// @name aaaaa
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.some
// @grant none
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==
(function() {
'use strict';
// Your code here...
$("tbody tr td.walletBalance").each(
function(){
if ($(this).text() == "0.0000 XBT"){
$(this).text("changed text");
}
}
);
})();

Проблема в том, что вы используете недопустимые символы одинарной и двойной кавычки. Одинарные кавычки должны быть ', а не ’, а двойные кавычки должны быть ", а не “ или ”. Как только это будет исправлено, ваш код работает нормально:
$("tbody").find("tr").each(function() {
var ratingTd = $(this).find('td.walletBalance');
if (ratingTd.text() == "0.0000 XBT") {
ratingTd.text('changed text');
}
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td class = "walletBalance">0.0000 XBT</td>
</tr>
</table>Добавлен пример работы будильника с помощью этого скрипта
нет. Может быть, мне следует напечатать что-нибудь в консоли для лучшего понимания проблемы.
Я бы попробовал это, я проверил это в браузере, и он работает правильно.
$("tbody tr td.walletBalance").each(
function(){
if ($(this).text() == "0.0000 XBT"){
$(this).text("changed text");
}
}
);
Проблемы:
Неправильные кавычки символов
Имо слишком сложный код для такой простой задачи
Возможно какие-то проблемы с импортом
Изменены кавычки и добавлены, как вы сказали. Еще ничего.
И в какой момент вы выполняете свой код? Это после правильной загрузки HTML? Как вы сделали в примере с предупреждением. В противном случае оберните этот код в window.onload или аналогичный.
На самом деле, у меня есть этот сигнал тревоги до того, как страница загружается должным образом. Должен ли я тогда использовать setTimeout?
Лучше, чем setTimeout, будет $(document).ready("этот фрагмент кода")
Не могли бы вы посмотреть скрипт tampermoney, пожалуйста. Я так менял и все равно ничего.