質問

私はしばらくの間、これを機能させるために壁に頭をぶつけてきました。コメントのプレビューをコンパクトにするために、コメント本文を 1 行に短縮しようとしています。jquery .each 関数を使用して、スレッドコメントシステム内の各 .cbody (コメント本文) を調べ、それを chead 内の cshort div に配置します。動作するはずですが、一番上の行で cshort クラスを選択できません。ご協力をよろしくお願いいたします。私が見る限り、私のjQueryは次のようになるはずです:

$('.cbody').each(function(Ind1){
         var str = $(this).text();
         $(this).parent().siblings('.chead').next('.cshort').html(str); 
    });
});

コメントの HTML は次のとおりです。

<ul>
<li>
<div id="23">
<a name="23">
</a>
<div class="chead">
<a href="#" class="unord">
<img src="images/plus.gif" border="0">
</a>
<a href="userinfo.php?user=muuuuuuuu">
<img src="include/avatar/n.jpg" border="0">
</a>
<span style="display: none;" class="uname">
usersname
</span>
&nbsp;,

<span class="cshort">
</span>
<span class="votes_up" id="votes_up23">
2
</span>
-
<span class="votes_down" id="votes_down23">
0
</span>
<span class="vote_buttons" id="vote_buttons23">
<a href="javascript:;" class="vote_up" id="23">
</a>
<a href="javascript:;" class="vote_down" id="23">
</a>
</span>
</div>
<div class="cbody">
<br>
The comment text funny lol
</div>
<a style="display: none;" href="#" class="reply" id="23">
Reply
</a>
<a style="display: none;" href="#21" class="cparent">
Parent
</a>
</div>
</li>
</ul>
役に立ちましたか?

解決

cbody の親には兄弟がないようなので、ビットは

$(this).parent().siblings('.chead')

は何も返しません。おそらくどちらかが必要です

$(this).parent().find('.chead')

または

$(this).siblings('.chead')

cshort に最も直接アクセスするには、次を使用します。

$(this).parent().find('.cshort')

編集:

HTML の階層は次のようになります。

ul
| li
| | div#23
| | | a
| | | div.chead
| | | div.cbody
| | | ...
  • $(this) cbodyを指します
  • $(this).parent() div#23 を参照します
  • $(this).parent().siblings() の他のすべての子ノードを返します。 li (サンプルコードの場合は空です)
  • $(this).siblings() div.chead といくつかの部分を指します a 要素

chead は cbody の兄弟であるため、これを選択する最良の方法は

$(this).siblings('.chead')

他のヒント

これを変更してみてください。

$(this).parent().siblings('.chead').next('.cshort').html(str);

これに:

$(this).siblings('.chead').children('.cshort').html(str);
あなたは.cheadの親を見てする必要はありませんので、

.cbody.cbodyは、兄弟です。また、.cshort.cheadの子供がいるので、あなたは(.cheadを経由して)いない兄弟で、.nextの子供たちに目を通すます。

最後のメソッドが追加されていないでしょうか?

.htmlを(文字列)それを毎回交換する、とあなたは最後のものだけになってしまいます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top