【问题标题】:javascript "or" statementjavascript“或”语句
【发布时间】:2012-08-12 06:26:29
【问题描述】:

我使用以下来触发一个 js 函数:

$(document).ready(function() {
    $('.gl a').do_this({

所以 div 类 .gl 中的任何链接都会激活函数 do_this.. 简单

现在,我也想在另一个 div 链接上触发相同的功能,我可以这样做:

( $('.gl a') OR $('.gm a') ).do_this({

尝试了所有组合但还没有工作,还是我只需为其他类复制整个东西?

【问题讨论】:

  • 您希望它影响一个或另一个,但不影响两者?
  • 感谢您的 -1... 想解释一下原因吗?真正激发人们学习和尝试的欲望!
  • 嗯,既然我收到了该评论的通知,我会回复:否决票不是来自我,但是你问了一个模糊的问题,当被问到时没有澄清你的意图。您还接受了一个似乎不符合您在问题中指定的小标准的答案(“或”,接受的答案绝对是“与”)。我不能说您为什么被否决,但我建议您在将来询问之前尝试进行更多研究。不要停止询问或学习,只需尝试展示一些研究并解释您尝试过的和失败的地方。
  • @DavidThomas 抱歉,关于 -1 的问题不是针对您的。不管是谁做的。我认为他们真的应该让用户解释他们。正如我在对我接受的答案的评论中所说的那样,它确实是一个,或者两者兼而有之,或者正如你所说的“和”。我确实尝试了很多东西。将来会澄清更多。感谢您的回复。

标签: javascript jquery function jquery-selectors


【解决方案1】:

像这样使用Multiple selectors:

$('.gl a, .gm a');

如果其中一个存在,或者两者都存在,这将起作用;我假设这就是你想要的。

【讨论】:

  • 严格来说,这不是一个“或”(但我不确定 OP 想要什么)。
  • 如果其中一个或两个都存在,这将起作用,除非 OP 想要一个独占的或。
  • @VivinPaliath:对。我也不确定OP在这里真正想要什么。如果他真的像a 或b 这样的意思,这将无法满足要求
  • @jAndy 英语的歧义 :) 是的,我同意这不会转化为布尔值 OR。
  • @VivinPaliath 谢谢。完美,如此简单!一个 css 多重翻译成 js,虽然可能反过来。再次感谢。是的,这是一个字面意义上的“或”,而不是一个或另一个,所以两者兼而有之 - 英语语言异常。
【解决方案2】:

如果您真的是指异或,我想您可以使用三元来确定要影响的特定组:

var groupToAffect = $('.gl a').length ? $('.gl a') : $('.gm a');
groupToAffect.do_this();

这将测试选择器$('.gl a') 返回一个非空的元素集合,如果是,则将该选择器返回的元素存储在groupToAffect 变量中。如果它返回零(假)元素,那么它将选择器$('.gm a') 返回的元素分配给该变量;然后与do_this() 方法/插件一起使用。

【讨论】:

  • 我想你的意思是$('.gl a').length ? $('.gl a') : $('.gm a');
  • @Nimphious,我确实做到了!为什么又问好,英语;已经有一段时间了... =/
  • 哦,为了避免第二次查找,您也应该可以这样做:var gl = $('.gl a'), group = gl.length ? gl : $(.gm a'); 如果经常使用并且性能很重要,可能会很有用。
【解决方案3】:

jquery 对象数组可以用 concat 组合在一起。然后遍历所有对象。

$( [].concat($('.gl a'),$('.gm a')) ).each(function(index){
    this.do_this({ //...
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    相关资源
    最近更新 更多