我有一系列嵌套的UL,如下所示:
<ul class="categorySelect" id="">
<li class="selected">Root<span class='catID'>1</span>
<ul class="" id="">
<li>First Cat<span class='catID'>2</span>
<ul class="" id="">
<li>cat in First<span class='catID'>3</span>
<ul class="" id="">
</ul>
</li>
<li>another cat in first<span class='catID'>4</span>
<ul class="" id="">
</ul>
</li>
</ul>
</li>
<li>cat in root<span class='catID'>5</span>
<ul class="" id="">
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
然后我有jQuery,我打算将"selected"类移动到不同的LI click():
$(document).ready(function () {
$("ul.categorySelect li").click(function () {
$("ul.categorySelect li.selected").removeClass("selected");
$(this).addClass("selected");
})
});
Run Code Online (Sandbox Code Playgroud)
当我测试它时,起初它似乎根本没有工作.我alert("click")在click事件函数中添加了一个,我能够告诉它它正在工作,但是在子LI和父LI上都注册了click事件,这意味着最终根LI总是最终被选中.
有没有办法阻止click()事件在父LI上执行?
给出以下字符串:
var str = "one,two,three";
Run Code Online (Sandbox Code Playgroud)
如果我在逗号上拆分字符串,我通常会得到一个数组,如预期的那样:
var arr = str.split(/\s*,\s*/);
Run Code Online (Sandbox Code Playgroud)
麻烦的是,在Google Chrome(适用于Mac)中,它会向阵列添加额外的属性.
Chrome调试器的输出:
arr: Array
0: one
1: two
2: three
constructor: function Array()
index: undefined
input: undefined
length: 3
Run Code Online (Sandbox Code Playgroud)
因此,如果我使用循环遍历数组for/in,它将迭代新属性.特别是input和index属性.使用hasOwnProperty似乎没有帮助.
修复方法是for根据数组的长度进行循环.我仍然想知道是否有人深入了解Chrome的行为方式.Firefox和Safari没有这个问题.
问题的简短版本:见标题
问题的长版:我在代码中广泛使用了jquery的show()和hide()函数,只是遇到了一些问题:它们分别通过将元素的display属性更改为'block'或'none'来工作,如果你有一些显示内容:内联然后隐藏并显示它,你已经将它的显示更改为阻止,这在几种情况下搞砸了布局.
在我的代码中,每当我想要隐藏某些东西时,我会给它一个"隐藏"的类.这个类只是{display:none}.我希望更改显示并隐藏以删除或添加此类,而不是直接更改显示属性,这样如果您添加隐藏类然后再次删除它(即隐藏并显示某些内容),那么它又回到了如何它是从一开始就开始的(因为添加一个类会覆盖属性而不是直接更改它们).像这样的东西(这是一个小小的pseucodey,因为我不知道如何正确设置功能 - 让我们假设'this'是显示/隐藏被调用的对象)
function show(){
this.removeClass("hidden");
}
function hide(){
this.addClass("hidden");
}
Run Code Online (Sandbox Code Playgroud)
如何以及在哪里重写jquery方法?(我不是javascript专家)
谢谢 - 最大
是否可以使用jQuery来计算div元素的数量?
我有这个代码:
<div id = "center">
<div class ="name">text text</div>
<div class ="name">text text text ... </div>
<div class ="name">text ...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
得到数字:3
所以我正在为一个允许客户端每页创建多个jQuery滚动条的项目构建一个jQuery插件 - 我正专注于这个问题的前端.
在准备好文档时,它将告诉滑块div进行初始化.然后,这将获取滑块中的图像数量,并为每个图像创建一个小圆圈按钮,以便用户可以单击一个圆圈并直接滑动到相应的图像.
我正在寻找能够返回该.eq()圈子价值的东西,以便知道他们想要去哪个幻灯片.$(this).eq()不起作用.
我通过将标签字符串保存到变量中来缓存标签字符串,但遇到了奇怪的范围问题.我知道这与闭包有关,但我似乎无法弄清楚究竟是什么问题.
info_lbl = {};
$("#chkCorporateGift").click(function(){
var type = $(this).is(":checked") ? "Corporate" : "Personal";
if(!info_lbl.hasOwnProperty(type)){
$.ajax({
url: svc_og + "Get" + type + "InformationLabel",
success: function(data){
info_lbl[type] = data;
}
});
}
$("#lblInformationType").text(info_lbl[type]);
});
Run Code Online (Sandbox Code Playgroud)
lblInformationType标签未在第一次调用GetCorporateInformationLabel或GetPersonalInformationLabel方法时设置.在第一次调用每个人之后,标签的值正在改变.有人可以解释为什么会出现这种情况吗?当我使用Firebug并设置断点时$("#lblInformationType").text(info_lbl[type]);,info_lbl[type]包含正确的值,并且前两个调用的一切正常.
var url = "/example/somelink";
jQuery.get( url, params, callback); //works fine
var url = "http://www.yahoo.com";
jQuery.get( url, params, callback); //fails!
Run Code Online (Sandbox Code Playgroud)
当我提供网站的完整网址时,get()会失败...知道为什么会发生这种情况?
谢谢
我有这个html代码:
<div id="ht_key" class="ht_all">
<div class="ht_bottom">
<div class="ht_bottom_p">
<span class="ht_bottom_o">
<a href="javascript:;" onclick="htrc('key');\">click</a>
</span>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
该代码可能会在页面中出现 5-6 次(或更多)。我想从 htrc 函数中将 #ht_key div 替换为其他一些内容。(“密钥”在每种情况下都不同)。问题是,如果页面中有 2 个具有相同“key”的 div,那么当 htrc 函数发生时,只有第一个 #ht_key div 被替换。因此,由于我需要替换单击 a(从中调用 htrc 函数)的 #ht_key div 的内容,有没有办法替换其父 div(具有 id 的父 div)?
我尝试过父级和最接近的,但没有一个返回结果。您有什么建议吗?
谢谢!
我有两个日期/时间戳:
d1 = 2011-03-02T15:30:18-08:00
d2 = 2011-03-02T15:36:05-08:00
Run Code Online (Sandbox Code Playgroud)
我想在上面比较两者:
if (new Date(d1) < new Date(d2)) {alert('newer')}
Run Code Online (Sandbox Code Playgroud)
但这似乎没有正常工作.有没有办法比较日期和时间.?谢谢
更新:
console.log(d1 + ' ' + d2);
console.log(new Date(d1) > new Date(d2))
2011-03-02T15:30:18-08:00 2011-03-02T15:36:05-08:00
false
2011-03-02T15:30:18-08:00 2011-03-02T15:30:18-08:00
false
2011-03-02T15:30:18-08:00 2011-03-02T14:15:04-08:00
false
Run Code Online (Sandbox Code Playgroud) 我开始使用Erlang和可以使用一个小的帮助申请时的PID从返回理解的不同结果spawn/3的process_info/1方法.
给定这个简单的代码,其中a/0导出函数,它只是调用b/0,等待消息:
-module(tester).
-export([a/0]).
a() ->
b().
b() ->
receive {Pid, test} ->
Pid ! alrighty_then
end.
Run Code Online (Sandbox Code Playgroud)
...请帮助我理解shell输出的不同原因:
例1:
在此,current_function的Pid被示出为tester:b/0:
Pid = spawn(tester, a, []).
process_info( Pid ).
> [{current_function,{tester,b,0}},
{initial_call,{tester,a,0}},
...
Run Code Online (Sandbox Code Playgroud)
例2:
在此,current_function的process_info/1被示出为tester:a/0:
process_info( spawn(tester, a, []) ).
> [{current_function,{tester,a,0}},
{initial_call,{tester,a,0}},
...
Run Code Online (Sandbox Code Playgroud)
例3:
在此,current_function的process_info/1被示出为tester:a/0,但current_function的Pid是tester:b/0:
process_info( Pid = …Run Code Online (Sandbox Code Playgroud)