Javascript 如何在另一个跨距内更改跨距文本?

Javascript 如何在另一个跨距内更改跨距文本?,javascript,jquery,html,Javascript,Jquery,Html,我试图创建一个可折叠列表,根据列表是折叠还是展开,从“+”变为“-”再变回来。我可以使用以下语句获得文本: $(this).children().eq(i).children('span')[0].firstChild.outerText; 但我不知道如何更改该值。也许有一个JQuery大师可以向我展示的更优雅的解决方案。这是我的名片 这是我能找到的最接近我的问题的答案,但我不知道如何实现它,甚至不知道是否有更好的方法。这可以简化很多。不要尝试匹配索引,只需使用jQuery的方法以子体为目标:

我试图创建一个可折叠列表,根据列表是折叠还是展开,从“+”变为“-”再变回来。我可以使用以下语句获得文本:

$(this).children().eq(i).children('span')[0].firstChild.outerText;
但我不知道如何更改该值。也许有一个JQuery大师可以向我展示的更优雅的解决方案。这是我的名片


这是我能找到的最接近我的问题的答案,但我不知道如何实现它,甚至不知道是否有更好的方法。

这可以简化很多。不要尝试匹配索引,只需使用jQuery的方法以子体为目标:

$('#test>li')。单击(函数(){
var$symbol=$(this.find('.symbol');
$(this.find('ul')。slideToggle('fast');
如果($symbol.text()=='+')){
$symbol.text('-');
}否则{
$symbol.text('+');
}
});
.hideUnderedList{
显示:无;
}

  • +第一个
    • 有事可做
    • 还有别的事要做吗
  • +第二个
    • 第二件事
    • 第二件事

这可以简化很多。不要尝试匹配索引,只需使用jQuery的方法以子体为目标:

$('#test>li')。单击(函数(){
var$symbol=$(this.find('.symbol');
$(this.find('ul')。slideToggle('fast');
如果($symbol.text()=='+')){
$symbol.text('-');
}否则{
$symbol.text('+');
}
});
.hideUnderedList{
显示:无;
}

  • +第一个
    • 有事可做
    • 还有别的事要做吗
  • +第二个
    • 第二件事
    • 第二件事
//使您的代码干净易读!
//不要瞄准测试。直接进入“标题/标题”元素(“按钮”)
$(“.Collapsable”)。在(“单击”,函数(){
//谁是我的+/-图标元素?
var$ico=$(this.find(“.symbol”);
//向上遍历LI,然后向下遍历以查找我的UL子列表:
var$subList=$(this).closest(“li”).find(“>ul”);
//实现当前的折叠/展开状态
var isSubListHidden=$subList.is(“:hidden”);
//好了,开始摇滚吧!
//更改文本+/-
$ico.text(IsubListHidden?-“:”+”;
//切换子列表:
$subList.stop().slideToggle();
});
.hideUnderedList{
显示:无;
}

  • +第一个
    • 有事可做
    • 还有别的事要做吗
  • +第二个
    • 第二件事
    • 第二件事
//使您的代码干净易读!
//不要瞄准测试。直接进入“标题/标题”元素(“按钮”)
$(“.Collapsable”)。在(“单击”,函数(){
//谁是我的+/-图标元素?
var$ico=$(this.find(“.symbol”);
//向上遍历LI,然后向下遍历以查找我的UL子列表:
var$subList=$(this).closest(“li”).find(“>ul”);
//实现当前的折叠/展开状态
var isSubListHidden=$subList.is(“:hidden”);
//好了,开始摇滚吧!
//更改文本+/-
$ico.text(IsubListHidden?-“:”+”;
//切换子列表:
$subList.stop().slideToggle();
});
.hideUnderedList{
显示:无;
}

  • +第一个
    • 有事可做
    • 还有别的事要做吗
  • +第二个
    • 第二件事
    • 第二件事

您可以使用类和伪元素的组合
::before
。jQuery完全关闭。您不能依赖来自远祖先元素的事件目标。有一天,您将添加另一个元素child,您的脚本将中断查看jQuery文档。应该是
.children()
。。。错误太多,您的文本问题是这里最小的问题…:(您可以使用类和伪元素的组合
::before
。您的jQuery已完全关闭。您不能依赖来自远祖元素的事件目标。有一天您将添加另一个元素子元素,您的脚本将中断。还有
$(this)。children;
查看jQuery文档。应该是
.children()
…错误太多,您的文本问题在这里是最小的问题…:(
.find('.symbol')
三次?缓存。@RokoC.Buljan更好?;PSymbol文本可以进一步简化为:$symbol.text($symbol.text()==='+'?'-':'+'))不,这不是更好,因为你的目标是任何LI,…:PWOW!!!!!我知道我的东西很难看!如果没有人知道,我是JQuery的新手。但是我所有的蹩脚代码都被转换为只有三行代码。谢谢你给我展示了一个更好的方法!:-)
。查找('.symbol'))
three times?Cache.@RokoC.Buljan better?;PSymbol文本可以进一步简化为:$symbol.text($symbol.text()==='+'?'-':'+'))不,这不是更好,因为你的目标是任何LI,…:PWOW!!!!!我知道我的东西很难看!万一没人知道,我是JQuery的新手。但是我所有的蹩脚代码都被转换为只有三行代码。谢谢你