0

私がやろうとしているのは、拡張可能な見出しに[+]または[-]記号を追加して、ユーザーが見出しをクリックすると、そのコンテンツ部分が表示され、その記号部分がから+-、またはその逆に変わるようにすることです。複数の見出しがあるので、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'>";

    ...

}
4

3 に答える 3

4

記号は見出しの子孫要素であり、兄弟ではないため、次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.
于 2012-04-06T17:43:53.770 に答える
1
if (jQuery(".sign").text()=="[+]")
{jQuery(".sign").text("[-]");}
else
{jQuery(".sign").text("[+]");}
于 2012-04-06T17:43:48.130 に答える
0

まあ、next()すぐに兄弟を取得するだけです。closest()代わりに使用してみてください。

于 2012-04-06T17:44:18.167 に答える