javascript - 根据设备更改 Squarespace 按钮 URL
问题描述
尝试根据设备更改 Squarespace 按钮的 URL。值得一提的是,元素是动态创建的。
我已经按类搜索工作,因为我无法按 id 或查询选择器进行搜索。现在的问题是按类搜索会生成一个节点列表,我似乎无法获得一个 for 循环来正确选择 href。
可能是我不知道的其他问题。
这是我到目前为止尝试过的代码
<div class="sqs-block button-block sqs-block-button" data-block-type="53" id="block-yui_3_17_2_1_1634189249286_8011"><div class="sqs-block-content" id="yui_3_17_2_1_1634205387553_330">
<div class="sqs-block-button-container--center" data-animation-role="button" data-alignment="center" data-button-size="small" id="yui_3_17_2_1_1634205387553_329">
<a href=“http:/google.com” class="sqs-block-button-element--small sqs-block-button-element" data-initialized="true">Learn more</a>
</div>
</div></div>
第一个 div 的类是搜索找到的类
<script>
let n = document.getElementsByClassName("sqs-block button-block sqs-block-button");
for(var i=0; i < n.length; i++)
{
n[i].addEventListener("click", function(e)
{
if(e.target && e.target.nodeName == "a")
{
console.log("item clicked");
}
});
}
</script>
解决方案
检查您的 navigator.userAgent 以查看您是否获得任何价值。此外,如果您的下载按钮在动态加载中,它不会像这样被选中。尝试在 if 逻辑之前控制台记录下载按钮以查看您获得的值。
要动态创建目标值,请检查事件委托: 什么是 DOM 事件委托?
推荐阅读
- ruby-on-rails - 在 IIS 上的 Rails 应用程序上配置 ruby 时出现异常
- c# - C# Renci.SshNet.Common.SshAuthenticationException:'权限被拒绝(密码)。'
- bootstrap-4 - 如何在移动屏幕中创建嵌套 3 行的引导程序,但在大屏幕中,一行图像在左上角,另外两个在右下角
- c++ - cplusplus connet mysql 显示数据问题
- javascript - react-table 在 next.js 中出现渲染问题
- react-native - 如何在原生反应中使用 Expo Camera?
- html - 使用 Bootstrap 时响应 SVG 大小问题
- stripe-payments - Stripe:即使设置了 CancelAt 字段,也向客户收取全额费用
- javascript - 如何在 Asp.net Web 应用程序中使用 RegisterClientScriptBlock 从后面的代码中注册一个 javascript 块?
- r - 在 R 中为 Boxplot 添加颜色