javascript - 使用 jQuery 更改文本

标签 javascript jquery html dom

我想要做的是将 [+][-] 符号添加到可展开的标题中,以便一旦用户单击该标题,其内容部分将被显示,其符号部分将从+更改为-,反之亦然。由于有多个标题,我使用了 jQuery 的 next()。到目前为止,.content 切换效果很好,但由于某种原因,符号没有改变。

<script type="text/javascript">
jQuery(document).ready(function() {
  jQuery(".content").hide();

  jQuery(".heading").click(function()
  {
    jQuery(this).next(".content").toggle();
    if (jQuery(this).next(".sign").text()=="[+]")
    {jQuery(this).next(".sign").text("[-]");}
    else
    {jQuery(this).next(".sign").text("[+]");}

  });
});
</script>
<小时/>
for (int i = 0; i < nodes.getLength(); i++)
 {
   Element element = (Element) nodes.item(i);
   NodeList title = element.getElementsByTagName("Title");
   Element ttl = (Element) title.item(0);
   String linkTitle = getCharacterDataFromElement(ttl);
   htmlReturn += "<a href='#' class='heading'><h4>" + linkTitle + " <span class='sign'>[+]</span></h4></a>";
   htmlReturn += "<div class='content'>";

    ...

}

最佳答案

因为该符号是标题的后代元素,而不是同级元素,所以使用 find而不是next :

var sign = jQuery(this).find(".sign");
sign.text(sign.text() === "[+]" ? "[−]" : "[+]");
// Note: A minus sign (−) has the same width as a plus sign (+),
// whereas a hyphen (-) is typically narrower.

关于javascript - 使用 jQuery 更改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047035/

相关文章:

javascript - jQuery 插件 TableExport.js 中生成的奇怪字符

javascript - 如何禁用 Sequelize 同步?

javascript - 如何将 ipcRenderer 从 Electron 添加到 Angular?预加载脚本中的附加变量未定义

javascript - 我的函数无法访问其父闭包并且缺少变量。如何?

javascript - jQuery wrap 和 appendTo 不会导致预期的结果

javascript - 如何调试谁覆盖了我的 jQuery ajax 行为?

javascript - 复杂的 CSS 选择器 - 如何要求可见

javascript - 选择时在文本框中使用 javascript 隐藏图像

javascript - ObservableArray 未绑定(bind)到 GUI

html - 表格 (X)HTML 表单