【问题标题】:jQuery: How to add/have numeric class as in word/string?jQuery:如何在单词/字符串中添加/具有数字类?
【发布时间】:2013-12-05 15:20:09
【问题描述】:

正如标题所说,我想要字符串类而不是数字,这是我目前拥有的脚本!

$('ul#nav li').each(function (index, element) {
    $(element).addClass('number_' + (index+1).toString());
});

这就是我得到的,它工作正常,没有任何问题;

<ul id="nav">
    <li class="number_1"></li>
    <li class="number_2"></li>
    <li class="number_3"></li>
    <li class="number_4"></li>
    <li class="number_5"></li>
</ul>

但我希望它以字符串而不是数字的形式返回类!所以像这样;

<ul id="nav">
    <li class="first"></li>
    <li class="second"></li>
    <li class="third"></li>
    <li class="fourth"></li>
    <li class="fifth"></li>
</ul>

请注意:这些类是动态生成/添加的,因此应该动态添加字符串类,因此可能有 100 个列表项!

感谢您的宝贵时间,感谢您的帮助:)

【问题讨论】:

  • 好主意。但是现在 jquery 中没有现成的函数可以用来实现这一点。
  • 是的,这是可以实现的。仅当您有一个带有 [ '1': 'first', '2': 'second', '3' =&gt; 'third', ... ] 之类映射的字典时
  • 这就是我想做的事情,所以也许有一个函数可以做到这一点,然后一遍又一遍地使用它:)
  • 没有简单的解决方案。您应该为每个数字定义每个翻译:Example
  • 真的!也许我需要想出一些算法来做到这一点......虽然非常复杂,我知道这是疯狂的方式但我别无选择:(我试图使用它的元素有很多很多类,老实说当我团队中的其他开发人员提出这样的想法时,我感到很困惑:(

标签: jquery css class dynamic


【解决方案1】:

你想要什么没有真正的意义,但你可以用一个数组来实现它:

<script type="text/javascript">
   var listClasses = new Array("first", "second", "third", "fourth",.....);
</script>

然后使用你的代码稍微修改一下:

$('ul#nav li').each(function (index, element) {
    $(element).addClass(listClasses[index]);
});

【讨论】:

  • 谢谢,是的,我知道这没有意义,但由于我的限制,我不能使用数字类!我已经将它作为一个数组,但这意味着我必须手动添加类:(干杯
  • 你看过stackoverflow.com/questions/15809950/…吗?看起来其他人正在尝试做同样的事情。也许其中一个答案可以帮助您弄清楚如何不使用数组,而是通过算法生成单词。
  • 是的,伙计已经看过了,但仍然在开头使用数字,这在 CSS 中是不允许的 :)
猜你喜欢
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 2016-06-10
  • 2021-08-22
相关资源
最近更新 更多