在ul列表中添加div元素

时间:2014-07-06 13:42:55

标签: javascript jquery html css

我有一些<li>元素,如下所示:

<ul class="some_class">
    <li></li>
    <li></li>
    ...
    <li></li>
</ul>

在我的css文件中,我有:

.some_class > li

我想通过jQuery更改一些li元素。我的想法是有这样的事情:

<ul class="some_class">
    <div id="some_id">
        <li></li>
        <li></li>
    </div>
    ...
    <li></li>
</ul>

并按$("#some_id").html()更改。但由于css,它失败了。我不想改变css,导致其模板css,并且很难对其进行更改。

是否还有其他方法可以实现此目的?

2 个答案:

答案 0 :(得分:3)

鉴于您提供的两个源代码,您的问题不是每个人说的CSS,而是您更改DOM的方式,使CSS无效:

解决方案1:

变化:

.some_class > li

要:

.some_class li 

因为在你的代码操作中,<li></li>现在是some_class的直接后代,你的CSS被破坏了。在CSS中>表示直接后代。

解决方案2:

如果您不想更改CSS,只需在要更改的<li>中添加一个类,但不要将它们嵌套在另一个div中。

注意:鉴于有关无效HTML的评论:解决方案2不会导致HTML出现问题,对于解决方案1,请将DIV替换为另一个UL

答案 1 :(得分:0)

有很多方法可以定位元素,特别是使用jQuery这是一件轻而易举的事。

当然,你可以为你想要定位的每个元素添加一个类,但是有很多方法可以在不改变你的标记的情况下完成它。例如,您可以使用eq()在父级中使用元素的实际索引进行选择;使用像第一个孩子,最后一个孩子的伪类;使用jQuery扩展,如:even或:odd;使用nth-child选择可重复的模式,比如每第三个元素(nth-child:(3n + 3))......