javascript - 如何更改另一个跨度内的跨度文本?

标签 javascript jquery html

我正在尝试制作一个可折叠列表,它根据列表是折叠还是展开从“+”变为“-”并返回。我可以使用以下语句获取文本:

$(this).children().eq(i).children('span')[0].firstChild.outerText;

但我不知道如何更改该值。 JQuery Guru 可以向我展示一个更优雅的解决方案。这是我的 JSFiddle .

This answer是我能找到的最接近我的问题的答案,但我不知道如何实现它,即使有更好的方法。

最佳答案

这可以简化很多。与其尝试匹配索引,不如使用 jQuery 的 find()定位后代的方法:

$('#test > li').click(function() {
  var $symbol = $(this).find('.symbol');
  $(this).find('ul').slideToggle('fast');
  if ($symbol.text() === ' +') {
    $symbol.text(' -');
  } else {
    $symbol.text(' +');
  }
});
.hideUnorderedList {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <ul id="test">
    <li id="first">
      <span class="Collapsable"><span class="symbol"> +</span>First One</span>
      <ul id="myfirstlist" class="hideUnorderedList">
        <li>Something to do</li>
        <li>Something else to do</li>
      </ul>
    </li>
    <li id="second">
      <span class="Collapsable"><span class="symbol"> +</span>Second One</span>
      <ul id="mysecondlist" class="hideUnorderedList">
        <li>Second thing to do</li>
        <li>Second other thing to do</li>
      </ul>
    </li>
  </ul>
</div>

关于javascript - 如何更改另一个跨度内的跨度文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43193263/

相关文章:

javascript - 算术运算符的不稳定行为

javascript - 使用 jquery 或 javascript 在选择框中隐藏重复的选项文本值

php:何时使用 echo 和 return

javascript - 与其他浏览器相比,为什么 IE 中的滚动指标不同?有什么适当的修复方法吗?

javascript - on ('click' ) 函数在第二次点击时触发

javascript - 使用 jquery 拖放图像

javascript - 如何检查一个元素是否存在于 td 中

jquery - jquery 中的嵌套表单 ID

jquery - 只是尝试将我在一个模板中使用的表单用于另一个模板

javascript - sessionStorge 上的数据集在同一选项卡的另一页上不可用