首页 > 解决方案 > 如果 HTML 标签不是兄弟元素或父元素,如何定位和重命名它?

问题描述

我有以下一段 HTML:

    <tr id="shared_event_propsrow1">
        <td class="field-public">
            &nbsp;
        </td>
        <td class="field-required">
            &nbsp;
        </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;">&nbsp;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">&nbsp; </td>
        <td>&nbsp;</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具有相同交替 ID的元素shared_event_propsrow1shared_event_propsrow2并且所有label元素都使用相同的for=并且class在同一页面上的同一个表中......呃......所以我想要做的是针对这部分:

        <label class="wrapable" for="shared_event_propsname">
            Sponsor name (5):
            <span style="display:none;">&nbsp;Step 12.</span>
            <span style="display:none;">Maximum input length is 255 characters.</span>
        </label>

并将赞助商名称 (5) 重命名为 Cash and Cheques:

但我看到的唯一可以瞄准它的是一个id生活在它tr之后的东西 <input name="shared_event_propsprop_sponsor_5.field" id="shared_event_propsprop_sponsor_5.field" value="" size="60" maxlength="255">

我正在努力寻找合适的词来在 Google 中搜索可以做我想做的事情的东西。

任何帮助是极大的赞赏!谢谢

标签: javascriptjqueryhtml

解决方案


正如异端猴子建议的那样,您可以针对文本本身:

$(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">
            &nbsp;
        </td>
        <td class="field-required">
            &nbsp;
        </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;">&nbsp;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">&nbsp; </td>
        <td>&nbsp;</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>


推荐阅读