2

私はEnliveを初めて使用します。で反復できることがわかりましたがclone-for、単一の要素に対して機能します。次のような要素のペアのリストを生成したい:

<div>
  <a href="url1">item 1</a><br>
  <a href="url2">item 2</a><br>
  ...
</div>

を選択<a>して使用しようとしましclone-forたが、次の結果で終了します。

<div>
  <a href="url1">item 1</a><a href="url2">item 2</a>......<br>
</div>

各反復で繰り返す<a>にはどうすればよいですか?<br>

4

1 に答える 1

3

この場合、フラグメントが機能すると思います。

これらの行に沿って何かを試してください:

(html/sniptest "<div><a href=\"url\">Label</a><br/></div>" {[:a] [:br]} 
  (clone-for [{label :label url :url} [{:label "Google" :url "http://www.google.com" }
                                       {:label "Stack Overflow" :url "http://www.stackoverflow.com"}]]
             [:a] (do-> (content label)
                        (set-attr :href url)))))
;; =>
<div>
     <a href="http://www.google.com">Google</a><br />
     <a href="http://www.stackoverflow.com">Stack Overflow</a><br />
</div>

div の完全なコンテンツ ( fragment だけでなく) を常に複製したい場合は、and:a -> :brを使用できます。上のセレクターを に変更するだけです。first-childlast-child{[:a] [:br]}{[:div first-child] [:div last-child]}

于 2013-12-19T09:53:36.807 に答える