Как создать связи из существующего текста в Механике?

Я думаю, что просто испытываю слишком много затруднений при понимании, как использовать regex и создавая связи...

Я работаю над сценарием Механика для виртуальной любимой игры, которая создаст связи с Wiki для каждого существа, перечисленного на определенной странице. Проблема, новые домашние животные добавляются к странице все время, таким образом, я не могу просто hardcode связи в сценарий. Я должен искать имена существ и затем сделать его связью...

Можно рассмотреть целевая страница без подписания.

Типовой исходный код с целевой страницы:

<tr>
    <td>Flizzard</td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
</tr>
<tr>
    <td>Fluff</td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
    <td align="center"></td>
</tr>  

.
.

"Flizzard" и "Пух" были бы тем, что я хочу превратиться в связи... Я нашел это и начал работать над ним, и это могло бы работать, кроме него, кажется, не говорит, где начать матч (способом, который имеет смысл мне так или иначе), и у меня нет подсказки, что вставить (Идентификатор, Который Обозначает Конец текста Интереса),

var html = document.body.innerHTML;
html = html.replace( /(http://wiki.unicreatures.com/index.php?title=)(.*?)(The-
Identifier-That-Denotes-End-Of-Text-Of-Interest)/g, $1$2$3
);
document.body.innerHTML = html;  

.

Мог кто-то, возможно, пожалуйста, пытаться объяснить, как это работы regex, и что работало бы на (Идентификатор, Который Обозначает Конец текста Интереса), так как я, кажется, не вижу пунктуации или мест после имен существ?

Спасибо!

(Пожалуйста, НИКАКОЙ информации о jQuery... JavaScript не достаточно, чтобы обернуть мой мозг вокруг прямо сейчас LOL),

0
nl ja de

3 ответы

Short Answer: You cannot do that with regular expressions.

Почему? Поскольку нет никакого уникального идентификатора или образца для HTML, вы хотите заменить.

Вы захотите сделать что-то вроде этого вместо этого:

// Get that table in that page
var table = document.getElementById('right').getElementsByTagName('table')[4]

// Get all table rows
var tableRows = table.getElementsByTagName('tr');

// For each table row, (except the first)
for(i=1; i<tableRows.length; i++) {

   //Get the first table cell
    var tableCell = tableRows[i].children[0];

   //Replace the text with a link, or whatever you fancy
    tableCell.innerHTML = ''+tableCell.innerHTML+'';
}
2
добавлено
должен быть "innerHTML" вместо этого.
добавлено автор Samuel Liew, источник
рассмотрите источник HTML страницы и посмотрите то, что является самым близким родительским элементом с ID, в этом случае, it' s отделение с ID ' right'. таблица [4] означает пятый стол.
добавлено автор Samuel Liew, источник
У этого все еще была небольшая ошибка. Зафиксированный это. +1 для предупреждения против regex и для чрезвычайно правильного понятия/ответа.
добавлено автор Brock Adams, источник
всего одна проблема... tableCell.html не определена..., время, чтобы охотиться..., вероятно, на механика (или Firefox) использует что-то другое
добавлено автор Kat Cox, источник
Могли вы объяснять, как вы выяснили ' right' и ' table' [4], пожалуйста, таким образом, я знаю, как понять это?
добавлено автор Kat Cox, источник

Ваш код может быть упрощен до:

var critterCells = document.querySelectorAll (
    "#right div.content table:nth-child(4) tr td:first-child"
);

for (var J = 1, L = critterCells.length;  J < L;  ++J) {
    var critterName = critterCells[J].textContent;

    critterCells[J].innerHTML =
        '' + critterName
        + ''
    ;
}

#right div.content , в отборщике CSS, помогает принять меры против работы неправильного стола/страница.


<�Сильный> jQuery версия только немного короче (до сих пор):

var critterCells = $("#right div.content table:eq(4) tr:gt(0)").find ("td:first");

critterCells.each (function() {
    var jThis       = $(this);
    var critterName = jThis.text ();
    jThis.html (
        '' + critterName
        + ''
    );
} );

Но, это будет работать на любом браузере, если необходимо переключиться в будущее. (Например, IE не поддерживал textContent до IE9.)

1
добавлено

Другой ответ не работал..., но это сделало

var mytable = document.getElementById('right').getElementsByTagName('table')[4];
var myrows = mytable.rows

for(i=1;i < myrows.length;i++)
{
var oldInner;
oldInner = myrows[i].cells[0].innerHTML;
var critterName;
critterName=myrows[i].cells[0].textContent;

 myrows[i].cells[0].innerHTML = "'+oldInner +"";
}
0
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском