jquery获取href值并将其用作变量

时间:2013-05-15 20:12:38

标签: javascript jquery html5 variables

所以我为我的网站设置了一个滚动代码。

<section class="fpage">
   <a class="next" href="#view">test</a>
</section>

<section class="cpage">test</section>

在jquery我有。

$(document).ready(function () {
    $('.next').click(function (event) {
        var cpage = $(this).find('a').attr('href');
        var fpage = $(this).closest('section');
        event.preventDefault();

        fpage.addClass('anim').delay(500).queue(function(next){
            $(this).removeClass().addClass('cpage');
            next();
            cpage.removeClass('.cpage').addClass('fpage');
        });
    });
});

我希望varcpage获取.next href值(在本例中为#view)并将其用作其变量的名称。在这个例子中我有什么不对的?如何将cpage var转换为#view?

3 个答案:

答案 0 :(得分:2)

.nexta本身。您不需要使用.find

  var cpage = $(this).attr('href'); 

OR

  var cpage = this.href;

编辑:因为cpage是您需要执行此操作以选择元素的ID

 $(cpage).removeClass('.cpage').addClass('fpage');

答案 1 :(得分:1)

据我所知,这应该解决:

fpage.addClass('anim').delay(500).queue(function(next){
    $(this).removeClass().addClass('cpage');
    next();
    $(cpage).removeClass('.cpage').addClass('fpage');
});

答案 2 :(得分:0)

你有一些不合适的东西,但总的来说,没什么大不了的。

首先,

$('.next').click(function (event) {
    var cpage = $(this).find('a').attr('href');

它不能称之为自我。 .next是a标记的类,那么如果标记是唯一的标记元素,标记如何找到带有a标记的内部元素? jQuery的.find用于寻找子孙,以及它所要求的元素。因此,这一行与以下内容一样简单:

var cpage = $(this).attr('href');

其次,

cpage.removeClass('.cpage').addClass('fpage');

cpage只是一个字符串变量,而不是jQuery对象,因此需要稍作修改。尝试:

$(cPage).removeClass

我不知道你正在使用什么版本的jQuery,但我给你的代码完全清理并编辑并使用最新的jQuery发布了一个jsFiddle。需要注意的是,如果您使用的是旧版本,则可能会有所不同,例如旧版本中.on.bind.live

jsFiddle

$(function() {
    $(".next").on("click", function(e) {
        e.preventDefault();
        var cPage = $(this).attr("href"),
            fPage = $(this).closest("section");

        fPage.addClass("anim").delay(500).queue(function(n) {
            $(this).removeClass().addClass('cpage');
            n();
            $(cPage).removeClass('.cpage').addClass('fpage');
        });
    });
})