【问题标题】:In Tritium, how do I select an element if I only know its relationship with another element?在 Tritium 中,如果我只知道一个元素与另一个元素的关系,我该如何选择它?
【发布时间】:2013-06-10 20:02:57
【问题描述】:

我正在使用 Moovweb SDK 来转换我的博客站点,并且我有一个这样的 cmets 列表:

<ul class="commentlist">
  <li class="comment" id="li-comment-131126">
    <div id="comment-131126">
      <div class="comment-author vcard">
        Comment from <cite class="fn" id="tevfik_sertel01">Tevfik Sertel</cite>
      </div>
      <p>I'm so great!</p>
    </div>
  </li>
  <li class="comment" id="li-comment-131127">
    <div id="comment-131127">
      <div class="comment-author vcard">
        Comment from <cite class="fn" id="jimmy_page01">Jimmy Page</cite>
      </div>
      <p>You're really not that great.</p>
    </div>
  </li>
  <li class="comment" id="li-comment-131129">
    <div id="comment-131129">
      <div class="comment-author vcard">
        Comment from <cite class="fn" id="roger_waters_07">Roger Waters</cite>
      </div>
      <p>You're actually kind of a bore.</p>
    </div>
  </li>
</ul>

因为它们很荒谬,所以我想摆脱所有不是 tevfik 编写的 cmets。

或者更确切地说,删除 id 不包含 tevfik 的引用的 lis。

我该怎么做?

【问题讨论】:

    标签: moovweb tritium


    【解决方案1】:

    您可以将范围限定在条件方括号内,如下所示:

    $(".//li[.//cite[not(contains(@id, 'tevfik'))]]") { 
      remove() 
    }
    

    或者更简单,直接使用 remove() 函数:

    remove(".//li[.//cite[not(contains(@id, 'tevfik'))]]")
    

    【讨论】:

    • 是否可以使用 CSS 选择器来做到这一点?
    • 我为示例创建了一个氚共享:tritium.moovweb.com/81a747baa4b34d5b13c2c5e584f99033eddc7bda
    • 在这个例子中,这是不可能的,因为
    • 元素是 元素的祖先。无法使用 CSS1-3 选择元素的父元素或祖先元素。你将不得不等待未来的 CSS 版本! :)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签