如何从原型中的url中提取param?

时间:2011-10-17 12:57:14

标签: javascript url prototypejs

我想从HTML链接中获取参数。

例如,我有以下HTML字符串。

示例1:

<div class='mydiv'><a href="/display/2">Link</a></div>    // get 2

示例2:

<div class='mydiv'><a href="/display/abc">Link</a></div>  // get abc

我该怎么做?

由于

3 个答案:

答案 0 :(得分:1)

只需将其视为数组并使用split()函数:

var myURL = "/display/2";
var splits = myURL.split("/");

alert(splits[splits .length - 1]);

修改

我误解了你原来的问题。我认为你只需要知道如何从href中提取2abc。由于我不知道prototype.js(我是一个jQuery人),这里是一个纯粹的JS解决方案:

var classElements = document.getElementsByClassName("mydiv");
var parsedHrefs = new Array();

for(var i = 0; i < classElements.length; i++) {
    var anchorsInDiv = classElements[i].getElementsByTagName("a");

    for(var j = 0; j < anchorsInDiv.length; j++) {
        var splitHref = anchorsInDiv[j].href.split("/");
        parsedHrefs.push(splitHref[splitHref.length - 1]);
    }
}

alert(parsedHrefs);

您可以查看a working fiddle here

其他信息

如果你感兴趣,这里是如何在jQuery中完成的:

var aryParsedHrefs = new Array();

$(".mydiv").find("a").each(function() {
    var splitHref = $(this).attr("href").split("/");
    aryParsedHrefs.push(splitHref[splitHref.length - 1]);
});

alert(aryParsedHrefs);

Fiddle

答案 1 :(得分:1)

查看我的fiddle,其中展示了原型所需的功能。

或检查以下......

var links = $$('div.mydiv > a[href]').inject([], function(arr, el) {
    arr.push($A(el.getAttribute('href').split('/')).last()); 
    return arr;  
});

答案 2 :(得分:1)

使用拆分功能

$("a").each(function(){

   var hrefSplit = this.href.split("/");
   if(hrefSplit){
       var asssociatedParam = hrefSplit[ hrefSplit.length -1 ];
    }

});

纯JavaScript

arr = document.getElementsByTagName("a");
for( var k = 0; k < arr.length; k++){
     var hrefSplit = arr[0].href.split("/");
       if(hrefSplit){
           var asssociatedParam = hrefSplit[ hrefSplit.length -1 ];
        }
}