JQuery найти TD с именем класса и изменить текст - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь использовать 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: я использую tampermonkey

    // ==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");
            }
        }
    );
})();

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

Я бы попробовал это, я проверил это в браузере, и он работает правильно.

$("tbody tr td.walletBalance").each(
        function(){
            if ($(this).text() == "0.0000 XBT"){
                $(this).text("changed text"); 
            }
        }
    );

Проблемы:

  • Неправильные символы кавычек

  • Слишком сложный код для такой простой задачи

  • Возможно, некоторые проблемы с импортом

0 голосов
/ 25 марта 2019

Проблема в том, что вы используете недопустимые символы одинарных и двойных кавычек. Одиночные кавычки должны быть ', а не , а двойные кавычки должны быть ", а не или . После исправления ваш код работает нормально:

$("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>
...