【发布时间】:2016-11-07 14:52:13
【问题描述】:
我目前正在开发一个供我个人使用的 JQuery 应用程序,作为一种捷径,我正在根据列表中的最后一个类做出决定,它始终是某种标识符。很多地方都这样做过:
$("#myelement").attr('class').split(/\s+/).pop()
元素的类是这样的:
class1 class2 class_with_id
问题是现在我在代码中有一个地方我试图将一个类添加到列表中,我通常会这样做:
$("#myelement").addClass("newclass")
但是,这使得类看起来像这样:
class1 class2 class_with_id newclass
稍后获取标识符类失败。我得到了它的工作:
$("#myelement").attr('class', "newclass " + $("#myelement").attr('class'))
那就是把它加到开头:
newclass class1 class2 class_with_id
我有两个相关的问题:
这是完成将其添加到开头的最简单/最简单的方法吗?
-
有没有一种简单的方法可以在不进行花哨的字符串操作的情况下将类添加到集合的中间。 IE。说我希望它是倒数第二个元素:
class1 class2 newclass class_with_id
【问题讨论】:
-
我认为您有问题,但您正在寻找的解决方案不是好的解决方案。而不是
class_with_id,你应该使用data-with-id="id"... -
我同意 Karl-Andre 的观点,如果您改用数据属性,则无需担心这一点。您仍然可以使用 [data-x] 选择器在 CSS 和 JavaScript 中定位数据属性,因此如果您将其设为 data-id,您可以使用 [data-id] 调用它。
-
有些人会发誓,按数据而不是按类的样式是不正确的,因为动态的数据属性不是语义内容。在我看来,这是完全合适的。
标签: javascript jquery html css attr