【问题标题】:incrementing eq() with jquery用 jquery 递增 eq()
【发布时间】:2013-02-06 18:39:25
【问题描述】:

与这里讨论的内容有些相关: jQuery eq() loop

我有任意数量的元素可以添加到页面中:

而不是这样做:

$('.taskName a:eq(1)').addClass('fixme');
$('.taskName a:eq(2)').addClass('fixme');

//我可以在添加项目时以编程方式在此处添加更多内容,而不必编写 1、2、3、4 等代码吗?

我想完成计数,并在添加新元素时增加 eq() 中的数字。

我解决了其他问题,因此我删除了该问题不再需要的所有代码。

【问题讨论】:

  • 那么,您希望将类添加到哪些<a> 标签?
  • 在三种情况下,如果它位于标题为“Role: Repeter_Manager”的 div 中 - 或 - 标题为空
  • .each 有什么问题?为什么需要:eq()?我认为我没有理解这里的问题。
  • 我走这条路的根本原因,换句话说,我正在处理所有具有相同类但需要不同样式的元素。

标签: jquery


【解决方案1】:

不确定我是否明白,但我会尝试:

$('a').filter(function() {
   return $(this).closest('.taskName').attr('title') == '' || 
          $(this).closest('.taskName').attr('title') == 'Role: Repeter_Manager';
}.addClass('fixme');

将类添加到具有匹配标题的元素内的锚点???

【讨论】:

  • 很抱歉在这种情况下不包括 html,但它会更令人困惑,因为它实际上是呈现为 .js 文件并且其中有一些 jstl 核心条件以使树视图工作(我有把这种格式作为事后的想法)它在最初创建时从未考虑过。
  • 你可以使用filter()函数来过滤掉任何东西,只需添加$(this).index() > 10if ( !$(this).is(':first') )等类似的东西。
【解决方案2】:

由于您没有发布 html,因此很难准确判断哪些元素需要 .fixme,但我会假设除了第一个和最后一个元素之外的所有元素。在这种情况下,这将完成这项工作:

$('.taskName a').slice(1, -1).addClass('fixme');

.slice

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2011-06-10
    • 2012-12-13
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多