动态内容取决于 url 参数

Dynamic content depending url params

我有那个 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" 的块。如果 params 为空或 URL 没有 params,则显示带有 id="default-content" 的块。

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

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

有什么想法吗?

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

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

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

如果不区分大小写:

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

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

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