【问题标题】:Hide character with jQuery inside a span with a class使用 jQuery 在具有类的范围内隐藏字符
【发布时间】:2020-09-19 23:21:57
【问题描述】:

我一直在寻找解决方案,但似乎没有任何效果。

我有一个跨度内的 SKU,其类别为“sku”。一些 SKU 在 SKU 之前有句点,以允许添加多个具有相同 SKU 的产品。

我想隐藏显示 SKU 的时间段。

这是我的代码:

<span class="sku">..THESKU</span>

这是我正在使用的 jQuery:

<script>
    $('span.sku').html($('span.sku').html().replace('.',''));
</script>

是对的,还是我错过了什么?谢谢。

【问题讨论】:

  • 您必须在要设置样式的文本周围添加另一个标签。
  • 如果页面上的多个元素可以匹配它,那么重复使用相同的选择器也是一种代码味道。因为您将所有元素设置为相同的值。在这里使用上下文选择器或each() 是有意义的。

标签: html jquery woocommerce


【解决方案1】:

您的代码只会替换一个dot '.'。您可以使用正则表达式来删除所有点:

const skus = $('span.sku');

$('span.sku').each(function() {
  const text = $(this).html();
  const cleaned = text.replace(/\./g,'');
  $(this).html(cleaned);
})

希望这会有所帮助!

编辑:按照@Taplar 的建议更新

【讨论】:

  • 谢谢你。但它似乎仍然不起作用。我在页面的页脚中有 jQuery - 是否需要在 SKU 显示之前去?谢谢。
  • @Emma 您的脚本需要在您的 SKU 值显示后运行。是否没有可用于包含脚本的事件处理程序?
  • @Taplar 我明白你现在在说什么。让我更新一下。
  • 感谢您的编辑。我已经尝试过了,但它仍然不起作用。我正在使用 wordpress 主题,它确实包含 jQuery(我在网站的其他部分使用了 jQuery)。你说的是事件处理程序吗? (对不起,jQuery 不是我的强项)。脚本在页脚中,所以它在 SKU 显示之后,但它需要直接在之后吗?感谢您的所有帮助。
  • 我现在明白了。 Wordpress 不是我的最佳选择,但您可以尝试使用 setTimeout(...) 和上面的脚本进行临时测试。我觉得我们在这里遗漏了一些东西。如果您的页面通过 API 加载数据,这可能是您遇到一些竞争问题的原因。
【解决方案2】:

我只是想对此进行更新。我仍然无法隐藏这些句点,但我找到了一种拥有重复 SKU 的方法,因此不再需要这个。感谢您的所有帮助。

如果有人有类似的问题,我使用的代码在下面,我将其添加到主题函数文件中。

add_filter( 'wc_product_has_unique_sku', '__return_false', PHP_INT_MAX );

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多