查询中的JavaScript外观匹配子字符串与对象

查询中的JavaScript外观匹配子字符串与对象,javascript,url,object,substring,match,Javascript,Url,Object,Substring,Match,我想根据URL中出现的一些值在页面上显示一条消息。我有一个已知的字符串列表和相应的消息。我似乎无法通过查找/消息传递实现任何目标。有人能帮忙吗?首选JavaScript,而不是jquery。我并不是在这一点上忽略了差异;) 非常感谢 <div id="messagediv"></div> 要测试的示例URL: <p><a href="#?utm_campaign=SpaComp123">Campaign 1</a> <p&g

我想根据URL中出现的一些值在页面上显示一条消息。我有一个已知的字符串列表和相应的消息。我似乎无法通过查找/消息传递实现任何目标。有人能帮忙吗?首选JavaScript,而不是jquery。我并不是在这一点上忽略了差异;)

非常感谢

<div id="messagediv"></div>

要测试的示例URL:

<p><a href="#?utm_campaign=SpaComp123">Campaign 1</a>
<p><a href="#?utm_campaign=PoolComp123">Campaign 2</a>
<p><a href="#?utm_campaign=BeachComp123">Campaign 3</a>

<script>
(function () {
    var params = window.location.search.substring(1).split('&'),
    urlParams = {},
    key, val;
    for (var i = 01; i < params.length; i++) {
        urlParams[params.split('=')[0]] = params.split('=')[1];
    }

  // querystring is ?utm_campaign=SpaCamp12458
  // for instance, match URL query value SpaCamp12458 with the nums SpaComp key and show the corresponding text in the messagediv

  var nums = {
        defaultMessage: "Default Message",
        "SpaComp": "Spas",
        "PoolComp": "Recreation",
        "BeachComp": "Outdoors"
    }

    for (var i in nums) {
        if (nums.hasOwnProperty(i)) {
            var found = false;

            for (var j in urlParams) {
                if (urlParams.hasOwnProperty(j)) {
                    if (urlParams[j].indexOf(nums[i]) === 0) {
                        document.getElementById("messagediv").innerHTML = nums[i];
                        found = true;
                        break;
                    }
                }
            }

            if (!found) {
                document.getElementById("messagediv").innerHTML = nums.defaultMessage;
            }
        }
    }

})();

</script>



(功能(){
var params=window.location.search.substring(1).split('&'),
urlParams={},
键,val;
对于(变量i=01;i
感谢您对ADC和Danny Thunder的帮助。非常感谢,因为我是新来的。我能够检索查询参数。Thopugh还没有在“nums”obj中找到匹配的方法。你能告诉我怎么走吗?谢谢(var i=01;i。这应该是
params[i]。拆分('-')…
(你实际上没有在任何地方使用
i
。谢谢JLRishe。这真是一个疏忽。我在
nums
中使用
i
,在
urlParams
中使用
j
将其改为
var j=1;j
是否正确,因为我正试图使用
urlParams.hasOwnProperty(j)
稍后?谢谢你对我的耐心,让我了解一切的原因/作用。呃,那是我的疏忽——我不确定我的评论中是否清楚这一点。:)