Как извлечь param из URL в прототипе? - PullRequest
0 голосов
/ 17 октября 2011

Я хочу получить параметр из 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 ]

1 голос
/ 17 октября 2011

проверьте мою скрипку , которая демонстрирует необходимую функциональность с прототипом.

или проверьте ниже ...

var links = $$('div.mydiv > a[href]').inject([], function(arr, el) {
    arr.push($A(el.getAttribute('href').split('/')).last()); 
    return arr;  
});
1 голос
/ 17 октября 2011

Использование функции разделения

$("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 ];
        }
}
1 голос
/ 17 октября 2011

Просто обработайте его как массив и используйте функцию split():

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

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

EDIT

Я неправильно понял ваш первоначальный вопрос. Я думал, вам просто нужно знать, как извлечь 2 и abc из href. Так как я не знаю 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);

Вы можете посмотреть рабочую скрипку здесь .

Дополнительная информация

Если вам интересно, вот как это будет сделано в 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...