У меня есть следующий кусок HTML:
<tr id="shared_event_propsrow1">
<td class="field-public">
</td>
<td class="field-required">
</td>
<td class="field-number">
12.
</td>
<td class="field-label">
<label class="wrapable" for="shared_event_propsname">
Sponsor name (5):
<span style="display:none;"> Step 12.</span>
<span style="display:none;">Maximum input length is 255 characters.</span>
</label>
</td>
</tr>
<tr id="shared_event_propsrow2">
<td colspan="2"> </td>
<td> </td>
<td class="field-input">
<input name="shared_event_propsprop_sponsor_5.field" id="shared_event_propsprop_sponsor_5.field" value="" size="60" maxlength="255">
</td>
</tr>
Теперь эта CMS по какой-то странной причине имеет несколько tr
с одинаковыми чередующимися идентификаторами shared_event_propsrow1
и shared_event_propsrow2
, а все элементы label
используют одинаковые for=
и {{ X5}} в той же таблице на той же странице ... тьфу ... так что я пытаюсь нацелиться на эту часть:
<label class="wrapable" for="shared_event_propsname">
Sponsor name (5):
<span style="display:none;"> Step 12.</span>
<span style="display:none;">Maximum input length is 255 characters.</span>
</label>
И переименуйте имя спонсора (5) в Cash and Checks:
Но единственное, что я вижу, на что я могу нацелиться - это id
, который живет в tr
после него <input name="shared_event_propsprop_sponsor_5.field" id="shared_event_propsprop_sponsor_5.field" value="" size="60" maxlength="255">
Я изо всех сил пытаюсь найти правильные слова, чтобы искать в Google что-то, что может сделать то, что я пытаюсь сделать.
Любая помощь с благодарностью! Спасибо
2 ответа
Как и предложила еретическая обезьяна, вы можете настроить таргетинг на сам текст:
$(function(){
$('label:contains(Sponsor name (5))').text('Cash and Cheques');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<tr id="shared_event_propsrow1">
<td class="field-public">
</td>
<td class="field-required">
</td>
<td class="field-number">
12.
</td>
<td class="field-label">
<label class="wrapable" for="shared_event_propsname">
Sponsor name (5):
<span style="display:none;"> Step 12.</span>
<span style="display:none;">Maximum input length is 255 characters.</span>
</label>
</td>
</tr>
<tr id="shared_event_propsrow2">
<td colspan="2"> </td>
<td> </td>
<td class="field-input">
<input name="shared_event_propsprop_sponsor_5.field" id="shared_event_propsprop_sponsor_5.field" value="" size="60" maxlength="255">
</td>
</tr>
Вы можете попробовать что-то querySelectorAll
как это let elements = document.body.querySelectorAll("table tr > td > label. wrapable");
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.