这么简单的问题,但我无法弄明白......
function pageLoad() {
runDatepickers();
$("#btnSubmit").click(function () {
$('span[id^="rfv"]').css("display", "block");
alert("Submit was clicked");
$('span[id^="rfv"]').each(function () {
alert($(this).attr("id"));
if ($(this).css("display") = "inline") {
alert("display is inline");
$(this).css("display", "block");
}
});
});
};
Run Code Online (Sandbox Code Playgroud)
这在一次迭代后停止,我在页面上有多个以"rfv"开头的跨度,第一个语句$('span[id^="rfv"]').css("display", "block");正确选择并更改所有这些元素的显示,但根据我的警报,当我进入每个时,它只匹配第一个元素,就是它.我在这里失踪了什么?
正确性:改变
if ($(this).css("display") = "inline")
Run Code Online (Sandbox Code Playgroud)
至
if ($(this).css("display") === "inline")
Run Code Online (Sandbox Code Playgroud)
性能:在适当的地方缓存jQuery选择器.
简洁:利用.css()可以将函数作为第二个参数的事实.
function pageLoad() {
runDatepickers();
$("#btnSubmit").click(function () {
$('span[id^="rfv"]').css("display", function (i, display) {
return display === "inline" ? "block" : display;
});
});
};
Run Code Online (Sandbox Code Playgroud)
结语:拜托,请不要alert()用于调试.使用真正的调试器.
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |