使用jquery删除嵌入的Twitter时间线中的@reply



我正在自定义嵌入的Twitter时间线。我以为他们可以选择删除带有show-replies='false'的@回复,但这似乎不起作用。

我可以使用jquery删除"回复@twitter"div,方法是:

jQuery('.twitter-block').find('.twitter-timeline').contents().find('div.timeline-Tweet-inReplyTo').css('display', 'none');

但我无法删除后面紧跟的@reply<p>文本。

这是html。。。

<div class="timeline-Tweet-inReplyTo"><a class="u-linkBlend" data-scribe="element:in_reply_to_user_link" href="https://twitter.com/_/status/######">
Replying to @twitter
</a>
</div>
<p class="timeline-Tweet-text" lang="en" dir="ltr" style="margin: 0px;">twit tweet twitter</p>

当前jquery。。。

jQuery('.twitter-block').delegate( '#twitter-widget-0','DOMSubtreeModified propertychange', function(){customizeTweetMedia();} );
var customizeTweetMedia = function()
{ 
jQuery('.twitter-block').find('.twitter-timeline').contents().find('p.timeline-tweet-text').css('margin', '0');
jQuery('.twitter-block').find('.twitter-timeline').contents().find('img.Avatar').css('display', 'none');

您只需要创建一个不同的选择器来针对p和前面的div

也不是说你可以简化你的逻辑;您不需要contents(),并且find()呼叫可以连接在一起。试试这个:

$('.twitter-block').find('.twitter-timeline div.timeline-Tweet-inReplyTo, .twitter-timeline p.timeline-Tweet-text').hide();
jQuery('.twitter-block').find('.twitter-timeline').contents().find('div.timeline-Tweet-inReplyTo').css('display', 'none');
jQuery('.twitter-block').find('.twitter-timeline').contents().find('div.timeline-Tweet-inReplyTo').nextAll('p.timeline-Tweet-text').css('display', 'none');

最新更新