是否有一种简单直接的方法可以根据data属性选择元素?例如,选择具有名为customerIDvalue的数据属性的所有锚点22.
我有点犹豫使用rel或其他属性来存储这些信息,但我发现根据存储在其中的数据选择元素要困难得多.
我试图理解为什么内部函数可以在直接调用外部函数时访问外部函数的公共属性,而不是在将其赋值给变量时?
例:
function outer(x,y){
this.x = x;
this.y = y;
function inner(){
alert(this.x);
}
inner();
}
outer(1,2); //As expected, alerts 1
var func = outer(1,2) //Also alert 1
var func2 = new outer(1,2); //Alerts undefined
Run Code Online (Sandbox Code Playgroud)
我试过的一件事是删除this关键字alert(this.x);,它确实适用于所有三种情况.但是,如果我删除this关键字,我将访问传入的参数,而不是公共变量,这绝对不是所需的操作.有人可以解释这种行为吗?
我一直试图围绕javascript原型继承,并在阅读John Resig的书"Pro Javascript Techniques"时,我尝试这样的事情:
alert("me".constructor); //Correctly return String
alert(alert.constructor); //Correctly return Function
Run Code Online (Sandbox Code Playgroud)
然而,
alert(55.constructor);//I was expecting Number, but it returns error "SyntaxError: identifier starts immediately after numeric literal" in FF and in IE, it says it is expecting ")"
Run Code Online (Sandbox Code Playgroud)
我也尝试了其他可以在数字上工作的函数,比如toFixed() toPrecision()甚至toString() 没有任何作用!
有人可以解释一下这种行为吗?
我是jQuery的新手,我在ready函数中有一段代码需要大约4-5秒才能完成.我想做的是在页面加载时可能使用blockUI来显示"请稍候"消息.但是,如果我在ready函数中插入$ .blockUI和$ .unblockUI,它就会立即运行并消失.如果我把它放在外面,它会破坏IE6.有任何想法吗?我不一定需要使用BlockUI插件,其他任何东西都可以.
谢谢!
编辑:谢谢大家的反馈.我的代码很长,所以我不想在这里发布它,但它基本上构建了一个复选框树,树很长约1000叶.因此,选择已检查的并扩展它们,隐藏未经检查的那些,依此类推等等.我知道我可以尝试更多地优化它,但我想我也很好奇如何做到这一点.所以基本上我没有做任何post,get或ajax调用,我可以将unblock代码附加到它.大多数语句都是选择一些节点并添加/删除一些属性,如hide,show等.
我用yslow做了一些分析,似乎加载时间在被解析的html(~2.5秒)和javascript代码(~2.5)之间划分.在jquery ready函数返回true之前,让我想到是否有一种方法可以在页面加载时立即触发blockUI.
谢谢大家!
再次感谢大家!
我需要将currentTextjquery datepicker中的属性的默认显示从"Today"更改为"Today:Septmeber 14,2012".所以问题是日期选择器是通过某种方法公开今天的日期吗?或者我是否必须创建自己的JS新Date()并从那里获取日期,我试图避免!
$('#txtSelectedDate').datepicker({
showButtonPanel: true,
currentText: "Today: " + getTodaysDate(); // Is there such a method?
});
Run Code Online (Sandbox Code Playgroud) 我见过两个版本的自执行javascript函数:
(function() { ... })()
Run Code Online (Sandbox Code Playgroud)
和
(function() { ... }())
Run Code Online (Sandbox Code Playgroud)
注意函数执行"()"的不同位置
这两者有区别吗?
如何检查原型是否已加载/包含在页面中?如果我检查"Prototype"对象并且未加载原型,则在firebug中出现"Prototype is not defined"错误.
我试图创建三个按钮,使用jQuery更改div内的内容.
我不确定这段代码有什么问题.
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
var buttons = $("#buttons").find("a");
$("buttons").click(function() {
var id = $(this).attribute("id");
$("pages id").css("display", "none");
$("pages id:eq("+id+")").css("display", "block");
});
</script>????
<div id="buttons">
<a href="#" id="0" class="mybutton myred">Div 1</a>
<a href="#" id="1" class="mybutton myblue">Div 2</a>
<a href="#" id="2" class="mybutton myblue">Div 3</a>
</div>
<div id="pages">
<div id="1" class="mydivshow">1111</div>
<div id="2" class="mydivhide">2222</div>
<div id="3" class="mydivhide">3333</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)