0

わかりました、何らかの理由で、必要なものを完全に取得できないようです。私は近づいていますが、何らかの理由でパズルの最後のピースを完全に組み立てることができません.

HTML:

<table>
  <tr>
    <td>
      <a href="/path/to/larger/image.jpg"><img src="/path/to/image.jpg"/></a>
      <br/>Some caption <a href="http://somesite.com">text</a>.
    </td>
   </tr>
</table>

JavaScript:

$(function(){
  $('.fancy-gallery td > a').each(function(){
    var title = $(this).parent().html();
    $(this).attr('data-fancybox-title', title);
    $(this).attr('data-fancybox-group', 'group-' + $(this).closest('.textarea').attr('id'));
  });
});

したがって、これにより、最初のアンカーと画像を含む TD のすべてが得られます。.remove() を使用してみましたが、うまくいきませんでした。また、.not を使用してみましたが、それもうまくいきませんでした。

基本的に私がする必要があるのは、最初の<a/>タグと改行 (など<br/>) を削除することです。次に、それを data-fancybox-title 属性に割り当てます。

どんな助けでも大歓迎です。

4

3 に答える 3

2

td を複製し、アンカー タグを削除してから、テキストを取得します。

$(function(){
  $('.fancy-gallery td').each(function(){
    var title = $(this).clone().find("a").remove().end().text();
    $(this).attr('data-fancybox-title', title);
    $(this).attr('data-fancybox-group', 'group-' + $(this).closest('.textarea').attr('id'));
  });
});
于 2013-07-09T18:57:02.783 に答える
1

私は答えを見つけました。正しい道を歩み始めるのを手伝ってくれた @KevinB に感謝します。同じことをしようとしている人への答えは次のとおりです。

$(function(){
    $('.fancy-gallery td').each(function(){
        var title = $(this).clone().find('a:has(img), br').remove().end().html();
        $(this).children('a').has('img').attr('data-fancybox-title', title).addClass($(this).attr('id'));
    });
});
于 2013-07-09T20:36:22.010 に答える
0

.textの代わりに使用.html

var title = $(this).parent().text();
于 2013-07-09T18:45:36.890 に答える