使用jQuery循环使用ul li并存储当前导航项

时间:2010-09-27 12:00:02

标签: jquery arrays loops

我在我的UL中循环第一组li a标签并获得高度,以便我可以提供不同的背景图像,如果a> span> span文本包含两行或三行。

我需要能够将这些特定按钮存储在一个数组中,这样当我将鼠标悬停在它们上面时,双线文本的当前跨度会收到不同的背景图像。

这就是我所拥有的,我不知道从哪里开始。我很感激一些帮助。

   var doubleLineButtons = new Array();

$("div.subSectNav .RadPanelBar ul.rpRootGroup > li.rpItem > a").each(function (i) {

    if ($(this).height() > 35) {

        doubleLineButtons.push($(this))

        // here I need to access any possible menu items if the lines have wrapped and deliver a different background image
        doubleLineButtons[i].hover(function(){
            // change the background image of this button
            (this).css('background', 'url("/App_Themes/2010a/images/background_nav_sub_left_double.png") no-repeat scroll 0 0 transparent');
        },
        function(){
            // remove the background image from this button
        });

    }

});

非常感谢!

1 个答案:

答案 0 :(得分:3)

如果您想要做的就是更改背景图像,我不明白为什么您需要将它们存储在数组中。以下http://jsfiddle.net/h6GTW/的工作示例应该让您沿着正确的方向前进。

$('li').each(function() {
    if ($(this).height() > 35) {
        $(this).hover(function() {
            $(this).css('background', 'red');
        }, function() {
            $(this).css('background', 'white');
        });
    }
});?