【问题标题】:variable in nth child第 n 个孩子的变量
【发布时间】:2014-08-15 02:55:56
【问题描述】:

您好,我在我的第 n 个子 Jquery 代码中使用变量时遇到问题。我已经尝试了很多次,但没有奏效。数字 1 有效,但 var ab ac 和 position 无效。我尝试过各种形式的('+position+')(' + position + ')('+(position)+')。但是,没有一个有效...

var nextB = $('.nextButton');
$(nextB).click(function(){
    var AA = 1;
    var AB = 2;
    var AC = 3;
    var position = 4;
    $('#tHacks tr:nth-child(1)').hide();
    $('#tHacks tr:nth-child(AB)').hide();
    $('#tHacks tr:nth-child(AC)').hide();
    $('#tHacks tr:nth-child('+position+')').hide();
});

【问题讨论】:

  • HTML 是什么样的?检查控制台是否有错误?
  • 不要使用$(nextB),你已经有了$('.nextButton')的元素,所以你的代码看起来像$($('.nextButton'))

标签: javascript jquery css variables


【解决方案1】:

正如@j08691 在评论中提到的,您应该检查控制台是否有错误。 AB 线很可能出现故障并停止执行该功能。看起来位置线是正确的,所以 AB 和 AC 也一样。

更新: @monkeyinsight 注意到一个不相关的问题...在我的示例代码中清理它。此外@Kay 指出您可能希望使用 AA 而不是原始版本中的 1,因此我也将其添加到解决方案中。

$('.nextButton').click(function(){
    var AA = 1;
    var AB = 2;
    var AC = 3;
    var position = 4;
    $('#tHacks tr:nth-child('+AA+')').hide();
    $('#tHacks tr:nth-child('+AB+')').hide();
    $('#tHacks tr:nth-child('+AC+')').hide();
    $('#tHacks tr:nth-child('+position+')').hide();
});

【讨论】:

  • 是的,(1) 也应该是 ('+AA+')
  • @Kay,看起来这确实是他的目标。感谢您指出。
  • 使用 .eq() 像:$('#tHacks tr').eq(AA).hide();可能会更好。 .eq() 确实从 0 开始索引,但如果您希望通过集合中的索引来定位元素,您应该选择它。无需将字符串连接到 jquery 选择器中。
  • 我走了一条不同的路线,达到了我想要的结果。我认为我使用的服务器由于某种原因无法识别
【解决方案2】:

考虑更改您的代码

$('#tHacks tr:nth-child('+position+')').hide();

$('#tHacks tr:nth-child(4)').hide();

您可以在浏览器的控制台窗口中运行此代码,看看它是否有效。

整数添加到字符串中可能会在您的代码中产生问题。或者,您的代码中引用的第 n 个孩子可能不存在。

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多