【问题标题】:How to rewrite a url onlick in JQUERY? (JQuery)如何在 JQUERY 中重写 url onclick? (jQuery)
【发布时间】:2023-03-06 02:40:01
【问题描述】:

我有 4 个 div,点击后会转到一个 URL...

问题:当点击 div winkel_name 时...页面被重定向并显示更多详细信息。例如:商店页面位置为:www.rootdomain/store/ ...

当 div winkel_hover 被点击...它转到 www.rootdomain//store/storename/ 我如何重写和清理此输出的 url:www.rootdomain/store/storename?

<div class="winkel_hover">
   <table width="100%" height="100%">
                <tr>
                    <td valign="middle">
                        <div class="winkel_name">
                            <h2><a href="<?=$arItem["CODE"]?>"><?=$arItem['NAME']?></a></h2>
                        </div>
                    </td>
                </tr>
   </table>
</div>
<div class="winkel_name">
     <h2><a href="s-hertogenbosch"><font><font class="">'S-Hertogenbosch</font></font></a></h2>
</div>

而为 winkel_hover 制作 url 的 javascript 是这样的......

<script type="text/javascript">
$('.winkel_hover').click(function(){
    var winkel_url = $(this).find('.winkel_name a').attr('href');
    window.location.href = winkel_url;
});
</script>

请帮我清理我的 url 到这个输出:www.rootdomain/store/storename ?

【问题讨论】:

  • event.preventDefault() 是您正在寻找的。在 click 函数中只写这一行,它应该可以正常工作。

标签: javascript jquery html css frontend


【解决方案1】:

试试这个:

<script type="text/javascript">
   $('.winkel_hover').click(function(){
      var winkel_url = $(this).find('a').attr('href');
      window.location.href = winkel_url.substring(1);
   });
</script

【讨论】:

  • 嗨 Viswanath .. 感谢您的回复.. 它仍然无法正常工作.. 它仍然去 www.rootdomain//store/storename/ ...我需要 www.rootdomain/store/storename 作为这种输出...
  • 我已经更新了答案。现在检查一下,效果很好
【解决方案2】:

清理功能怎么样?

function sanitise(url) {
  out = url.replace('//', '/').split('');
  out.pop();
  return out.join('');
}

用法

var winkel_url = sanitise($(this).find('a').attr('href'));

DEMO

【讨论】:

    【解决方案3】:

    试试这个:

    $(document).ready(function()
    {
       $('.winkel_hover a').click(function(e){
            e.preventDefault();
            var winkel_url = $('.winkel_hover .winkel_name a').attr('href');
            window.location.href = winkel_url;
        });
    });
    

    至于消毒,我不会在客户端这样做,因为如果有人稍微尝试一下,它就会失效。确保清理所有获取参数服务器端。

    【讨论】:

      【解决方案4】:

      乍一看,我不明白为什么它有额外的斜线。确保您的 href 开头不包含斜杠,例如它是“url”而不是“/url”;

      作为“破解”解决方案,您只需将其删除: $(this).find('.winkel_name a').attr('href').replace('/','');

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 2011-08-24
        • 2013-12-26
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多