Jquery 给孩子们上课

Jquery 给孩子们上课,jquery,Jquery,当我这样做的时候 $('ul.latestnews ul li').parent().prev().text())我获取目标li的内容。(本例中为word1或word2) 但当我这么做的时候 $('ul.latestnews ul li').addClass($(this).parent().prev().text()); 它没有添加类。当我在最后一条语句上执行console.log时,它只返回我试图添加该类的所有li 我想做的是: <ul class="latestnews">

当我这样做的时候
$('ul.latestnews ul li').parent().prev().text())我获取目标li的内容。(本例中为word1或word2)

但当我这么做的时候

$('ul.latestnews ul li').addClass($(this).parent().prev().text());
它没有添加类。当我在最后一条语句上执行console.log时,它只返回我试图添加该类的所有li

我想做的是:

<ul class="latestnews">
    <li>word1</li>
    <ul>
        <li>my class should become word1</li>
        <li>my class should become word1</li>
    </ul>
    <li>word2</li>
    <ul>
        <li>my class must become word2</li>
    </ul>        
</ul>
  • 字1
    • 我的班级应该成为word1
    • 我的班级应该成为word1
  • 字2
    • 我的班级必须成为word2

我哪里出错了

仅是jQuery函数内部的DOM元素,如
每个

$('ul.latestnews ul li').each(function(){
    $(this).addClass($(this).parent().prev().text());
});
代码中的此
可能是
窗口
对象


请注意,使用
prev
parent
进行的那种DOM遍历非常容易中断,如果稍微更改DOM结构,您可能需要使用其他基于元素类的选择器。

仅是jQuery函数内部的DOM元素,如
each

$('ul.latestnews ul li').each(function(){
    $(this).addClass($(this).parent().prev().text());
});
代码中的此
可能是
窗口
对象


请注意,使用
prev
parent
进行的那种DOM遍历非常容易中断,如果稍微更改DOM结构,您可能需要使用其他基于元素类的选择器。

我认为html代码不太正确,它应该是这样的:

<ul class="latestnews">
    <li>word1</li>
    <li>
        <ul>
            <li>my class should become word1</li>
            <li>my class should become word1</li>
        </ul>
    </li>
    <li>word2</li>
    <li>
        <ul>
            <li>my class must become word2</li>
        </ul>
    </li>        
</ul>

我认为html代码并不完全正确,它应该是这样的:

<ul class="latestnews">
    <li>word1</li>
    <li>
        <ul>
            <li>my class should become word1</li>
            <li>my class should become word1</li>
        </ul>
    </li>
    <li>word2</li>
    <li>
        <ul>
            <li>my class must become word2</li>
        </ul>
    </li>        
</ul>


快速问题bruv
.addClass(text)
这将实现什么,为什么++1无论如何,关于启蒙
:)
生活如何@塔斯尤尼特。我不明白你的问题,但生活是美好的…:)Saweet Bruv,摇摆\m/;我的意思是这样做:
.addClass($(this.parent().prev().text())只需将
单词1添加为类或其他内容,
:P
啊,在我这边太晚了,我的脑子快亮了,明白了
:)
谢谢!!明天见。快速提问bruv
。addClass(text)
这将实现什么,为什么++1无论如何,关于启蒙
:)
生活如何@塔斯尤尼特。我不明白你的问题,但生活是美好的…:)Saweet Bruv,摇摆\m/;我的意思是这样做:
.addClass($(this.parent().prev().text())只需将
单词1添加为类或其他内容,
:P
啊,在我这边太晚了,我的脑子快亮了,明白了
:)
谢谢!!明天见。那不是html无效吗?有人能解释一下为什么在这个例子中,这个元素不是我想用的元素,而是窗口吗?@Jarco
this
只是jQuery函数内部的DOM元素,就像
each
一样。如果我正确地得到它,$(this)总是指它所在函数的DOM元素吗?因此,当您执行.each(function(){$(this)时它从window变为function元素?@Jarco。我会为它选择不同的词……但我想你已经明白了。html不是无效的吗?有人能解释一下为什么在这种情况下,这个元素不是我想要使用的元素,而是window吗?@Jarco。
这个
只是jQuery函数内部的DOM元素,就像
一样>each
。如果我得到正确的$(this)总是引用它所在函数的dom元素?因此,当您执行.each(function(){$(this)时它从窗口更改为Function元素?@Jarco。我会为此选择不同的词……但我认为你已经理解了。你是正确的。这是joomla组件k2的默认输出。我将创建一个新的k2模板来修复此错误。将
.parents(“li”).first()替换为=>
.closest('li'))
你是对的。遗憾的是,这是joomla组件k2的默认输出。我将创建一个新的k2模板来修复此错误。将
.parents(“li”).first()替换为=>
.closest('li')