jQuery для манипулирования IU на клиенте - PullRequest
0 голосов
/ 28 января 2012

Я начинаю изучать программирование на jQuery и хотел бы попросить помощи в написании этого фрагмента кода.

Существует ul список из нескольких li предметов.Каждый li имеет следующую структуру

 <li><a href="http://www.findadeal.com/city-state/"/>City</li> 

, где город-штат и Город - это жестко закодированные значения любого города, например

 <li><a href="http://www.findadeal.com/buffalo-ny/"/>Buffalo</li>

Когда запрашивается страницапараметр классификации продукта, скажем, «пиво», отправляется в строке запроса.

Мне нужно изменить ссылки li для получения следующей формы при загрузке страницы.

 <li><a href="http://www.findadeal.com/buffalo-ny/beer/"/>Buffalo Beer</li>

Как бы я закодировал логику зацикливания с jQuery, чтобы li elemnt изменяется соответственно.На странице обычно не более 50 городов.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Я не совсем уверен, что вы ищете, но я думаю, что это поможет вам.

$('li').each(function(){ //grab all li elements and loop through them
   var $this = $(this); //capture the jquery object for use later
   $this.find('a').attr('href','your new text');
});
0 голосов
/ 28 января 2012

В jQuery вы можете передать функции text() другую функцию, и возвращаемое значение этой функции будет новым значением для текущего элемента.

//wait for document.ready to fire before doing anything
$(function () {

    //check to see if there is a query-string or not
    if (window.location.search != '') {

        //split the query-string by ampersands
        var parameters = window.location.search.replace('?', '').split('&');

        //iterate through the query-string key/value pairs
        for (var i = 0, len = parameters.length; i < len; i++) {

            //get the key/value pair split into an array
            var pair = parameters[i].split('=');

            //if the key is the correct one then we can proceed
            if (pair[0] == 'product-classification') {

                //update each `li` element with the value of the `product-classification` query-string variable
                $('li').text(function () {

                    //add the value to the current text of the `li` element
                    return $(this).text() + ' ' + pair[1];
                });

                //now we can stop the loop because we have done what we want, if there are lots of query-string parameters this will be a good idea
                break;
            }
        }
    }
});

Вот пример: http://jsfiddle.net/LQXWz/

Документы для .text(): http://api.jquery.com/text

...