gpt4 book ai didi

jquery - 基于 Geoip 隐藏多个元素

转载 作者:行者123 更新时间:2023-11-28 00:36:37 26 4
gpt4 key购买 nike

我一直在实现一种工具来为不同国家/地区的用户显示隐藏元素(产品价格)。例如英国用户将看到与美国用户不同的价格。

我已经实现了来自 this question 的解决方案

但是,这仅适用于显示价格的目标标题的第一个实例。

我知道每个 id 应该是唯一的,但我不知道如何在不为每个产品复制 JQuery 代码的情况下做到这一点,是否有有效的方法可以帮助我?

    $.get("http://freegeoip.app/json/", function (response) {
$("#ip").html("IP: " + response.ip);


$("#country_code").html(response.country_code);


if(response.country_code=='GB'||response.country_code=='US'){


document.getElementById(response.country_code).style.display = "block";
}
}, "jsonp");
    #US { 
text-align: left;
color: black;
display:none;
}

#GB {
text-align: left;
color: black;
display:none;
}


#ip{
display:none;
color:white;
}

#country_code{
display:none;
color:white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ip">Loading...</div>
<div id="country_code"></div>
<div id="GB"><h4 class="h4black">£69.99</h4></div>
<div id="US"><h4 class="h4black">$89.95</h4></div>

最佳答案

要让您的 jQuery 使用下面探讨的基于 class 的方法,请交换此行:

document.getElementById(response.country_code).style.display = "block";

有了这个:

$(`.${response.country_code}`).show();

如果您无法使用 ES6(或更新的标准),那么,template literals ,您可以使用旧语法:

$('.' + response.country_code).show();

几点……

  1. 为包含国家/地区代码的 HTML 元素使用 class,而不是 id。这将允许您一次显示多个元素。
  2. 既然您使用的是 jQuery,那么您不妨使用它为 DOM 查找提供的内置函数。

这是一个证明这些要点的例子:

$(".US").show();
.US,
.GB {
text-align: left;
color: black;
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="GB">
<h4 class="h4black">£69.99</h4>
</div>
<div class="US">
<h4 class="h4black">$89.95</h4>
</div>
<div class="US">
<h4 class="h4black">$89.95</h4>
</div>

jsFiddle

关于jquery - 基于 Geoip 隐藏多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55844202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com