【问题标题】:Dynamic content depending url params动态内容取决于 url 参数
【发布时间】:2016-11-07 06:00:02
【问题描述】:

我有那个 jquery 脚本:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var dynamicContent = getParameterByName('utm_term');

 $(document).ready(function() {

            if (dynamicContent == 'buy') {
        $('#buy').show();
    }

    else {
        $('#default-content').show();
    }
});

它的工作原理是这样的:如果 URL 中的 utm_term 参数等于 'buy',则将显示带有 id="buy" 的阻止。如果参数为空或 URL 没有参数,则将显示带有 id="default-content" 的阻止。

还有一个问题:我需要 URL (utm_term) 中的那个参数不等于某个词,而只是拥有它。

因为现在如果 URL 有utm_term=smth_buy,我会看到#default-content,我会看到#buy。

有什么想法吗?

【问题讨论】:

    标签: jquery url dynamic params utm


    【解决方案1】:

    也许你应该使用正则表达式:

    if (dynamicContent.match(/buy/)) {
        $('#buy').show();
    }
    
    else {
        $('#default-content').show();
    }
    

    如果你希望它不区分大小写:

    if (dynamicContent.match(/buy/i)) {
        $('#buy').show();
    }
    
    else {
        $('#default-content').show();
    }
    

    (i 标志设置模式不区分大小写,bUY 将与 BUY 匹配)

    【讨论】:

    • 我还有一个问题。也许你知道。如果我的脚本中有两个条件(购买和订购两个词)“if”和 utm_term="buy_order",这意味着将显示两个不同的块。我怎样才能使只有一个条件适用于一组条件?
    • 使用or布尔运算符?喜欢if (dynamicContent.match(/buy/) || dynamicContent.match(/order/))
    • 嗯...其实我是在说这个if (dynamicContent.match(/buy/i)) { $('#title1').show(); } if (dynamicContent.match(/order/i)) { $('#title2').show(); }
    • 好的!我误解了,对不起......所以使用if... else if结构是最好的方式,我认为
    • 但是在这种情况下会有两个标题的问题)如果 url 参数中有两个单词,我如何才能使只有一个条件起作用?
    猜你喜欢
    • 2013-11-23
    • 2021-12-12
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    相关资源
    最近更新 更多