表单中不带标记的目标文本



我在我的网站上使用WordPress插件,我有一个表单,其中有一些文本需要更改,基本上是执行查找和替换。问题是表单没有类,文本也没有,但由于这是一个插件,我无法修改实际的插件文件。我只想针对特定页面上的特定表单,所以我想知道如何做到这一点?我找到了创可贴的解决方案,但我想知道是否没有更好的方法?

我的代码看起来像:

<?php if (is_page("tickets")) { ?>
<script type="text/javascript">
$("form").addClass("tickets");

$("form").contents().filter(function(){
return this.nodeType === 3
}).wrap('<p />');

$("form p").text($("form p").text().replace("PayPal", ""));
</script>
<?php } ?>

基本上,这是一个WordPress网站,所以is_page针对的是上面有表单的特定页面;门票";页

然后,我将一个名为tickets的类添加到我的表单中,这样我就可以针对特定的表单进行造型。这样我就不会影响我的任何其他形式的网站范围:-(

我还在p标记中包装没有标记的文本。通过这种方式,我可以在没有标签的情况下为JS和样式设置目标文本。

最后。。。我以文本为目标(我只是用p标签包装(,并删除单词";PayPal";。

如果可以的话,我尽量远离JS,因为我知道它会减慢你的页面速度,但我想,既然我把它缩小到特定的页面和特定的表单,它可能不会对事情产生太大影响。

所有这些JS都是根据我在这里和那里找到的代码拼凑而成的。有没有更好的方法来做这个

表单看起来像:

<div>
<form target="_blank" action="https://url.com/wp-admin/admin-post.php?action=add_wpeevent_button_redirect" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="path" value="sandbox.paypal">
<input type="hidden" name="business" value="seller@url.com">
<input type="hidden" name="item_name" value="2022 Event Name">
<input type="hidden" name="custom" value="20681">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="notify_url" value="https://url.com/wp-admin/admin-post.php?action=add_wpeevent_button_ipn">
<input type="hidden" name="lc" value="EN_US">
<input type="hidden" name="bn" value="WPPlugin_SP">
<input type="hidden" name="return" value="">
<input type="hidden" name="cancel_return" value="">
<input type="hidden" name="upload" value="1">

<table class="main-table_20681" style="width: 100% !important;">
<tbody>
<tr>
<td class="row-qty">
<select name="wpeevent_button_qty_a">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
<td class="row-name">Ticket</td>
<td class="row-price">31.50 USD</td>
<td class="row-desc">
2022 Event Name
<input type="hidden" name="item_name_1" value="Ticket">
<input type="hidden" name="id_1" value="2201">
<input type="hidden" name="amount_1" value="31.50">
</td>
</tr>
</tbody>
</table>
Your eTicket will be sent to your PayPal email address after payment.<br>
<input class="wpeevent_paypalbuttonimage" type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="Make your payments with PayPal. It is free, secure, effective." style="border: none;"><img loading="lazy" alt="" border="0" style="border:none;display:none;" src="https://www.paypal.com/EN_US/i/scr/pixel.gif" width="1" height="1">
</form>
</div>

谢谢,
Josh

我最终使用了@vinay建议。。。谢谢你@vinay!

所以现在,代码看起来像:

<?php if (is_page("tickets")) { ?>
<script type="text/javascript">
$("form").addClass("tickets");

$("form").contents().filter(function(){
return this.nodeType === 3
}).wrap('<span />');

$("form span").text($("form span").text().replace("PayPal", ""));
</script>
<?php } ?>

最新更新