1

我试图从我的 HTML 中的某个元素中获取一些数据,但是当我要求 jQuery 将抓取的数据放入段落标签时,jQuery“NaN”。

这是我的完整代码:

$(".next-panel").click(function(event) {

    var accordion = $(".nav-accordion")
    var index = accordion.accordion('option','active')
    var next = index + 1;
    var panel = $(this).parents('.accordion-panel').next();
    var sectionTitle = $(this).parents('.accordion-panel').parents('li').next('li').children('a').attr('data-title');
    var sectionDesc = $(this).parents('.accordion-panel').parents('li').next('li').children('a').attr('data-desc');
    var sectionPercent = $(this).parents('.accordion-panel').parents('li').next('li').children('a').attr('data-percent');

    $('body').animate({
        scrollTop: $('#accordion-wrap').offset().top
    },
    800 
    );

    accordion.accordion('activate', next);
    panel.removeClass("ui-state-disabled").bind("click");


    $('#progress-box h6').text(sectionTitle);
    $('#progress-box p').text(sectionDesc);
    $('#percent-bar-inner p').text(sectionPercent);
    $('#percent-bar-inner').animate({
        width: sectionPercent,
    }, 300);

    console.log(sectionPercent)

    event.preventDefault();
    return false;


});

当我使用这个时:

var sectionPercent = $(this).parents('.accordion-panel').parents('li').next('li').children('a').attr('data-percent');

然后告诉它输出 Var 到:

$('#percent-bar-inner p').text(sectionPercent);

它给了我:

NaN

但是当我记录变量时,它给了我:

50

哪个是正确的值。

为什么会发生这种情况,NaN 是什么意思?!


更新

JS 小提琴示例:

这是一个 JS fiddle,显示它按预期工作:

http://jsfiddle.net/87QtE/

删除了我的代码的这些位:

var accordion = $(".nav-accordion")
var index = accordion.accordion('option','active')
var next = index + 1;
var panel = $(this).parents('.accordion-panel').next();

并且

accordion.accordion('activate', next);
panel.removeClass("ui-state-disabled").bind("click");
4

0 回答 0