构造一个javascript变量

时间:2010-08-25 18:57:16

标签: jquery

这是我的jQuery:

jQuery( document ).ready( function ( $ ) {
    $('ul li:first-child').addClass( 'first_item' );
    var className = $('.first_item').attr('id');
    alert('Date is:'+ className +'.');
});

然后是jQuery的另一部分,我试图在变量中使用变量:

j(".refreshMe").everyTime(5000, function (i) {
    j.ajax({
        url: "test.php?latest=" + className + "",
        cache: false,
        success: function (html) {
            j(".refreshMe").html(html);
        }

这一行:

url: "test.php?latest="+className+"",

我试图获取className变量并将其输入此行。

有谁能建议我在这里做错了什么?

4 个答案:

答案 0 :(得分:0)

在任一函数之外声明var classname,它将具有适当的范围来执行您正在尝试的操作。

答案 1 :(得分:0)

在我看来,问题只是你在“ready”处理程序中声明了“className”,因此其他代码看不到它。

将声明从那里拉出并使其成为全局(但见下文):

var className;

然后删除“就绪”处理程序

中的行上的var
className = $('.first_item').attr('id');

现在,像这样的全局变量肯定有用,但它有点难看。如果你只是将“everyTime”事物移到同一个“就绪”处理程序中并将变量保持为本地状态,那可能会更好。

答案 2 :(得分:0)

尝试从变量中删除var关键字以使其公开可用:

className = $('.first_item').attr('id');

或者您可能希望在<script>标记下方的就绪处理程序之外声明此变量:

var className = null;

答案 3 :(得分:0)

问题在于变量className的范围。在document.ready()函数外部(上面)声明它,以便className的分数扩展到整个js文件