这是我的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变量并将其输入此行。
有谁能建议我在这里做错了什么?
答案 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文件