1

我有一些 Lift 代码可以从列表中创建表行:

".row *" #> myList.map(x => {
  val rowId = x.id

  ".cell1" #> x.data &
  ".cell2" #> x.moreData 
})

基于这样的模板:

<table>
  <tr class="row">
    <td class="cell1"></td>
    <td class="cell2"></td>
  <tr>
<table>

我想要这样的输出:

<table>
  <tr class="row" id="123">
    <td class="cell1">stuff</td>
    <td class="cell2">junk</td>
  <tr>
  <tr class="row" id="456">
    <td class="cell1">more stuff</td>
    <td class="cell2">more junk</td>
  <tr>
<table>

如何根据我的 List 元素将该id属性设置rowId为每个属性?tr

4

1 回答 1

2

这应该适合你:

".row" #> myList.map(x => {
  val rowId = x.id

  "tr [id]" #> rowId &
  ".cell1 *" #> x.data &
  ".cell2 *" #> x.moreData 
})

要设置一个属性,通常只需要在[]. 所以,除了ID,如果你想添加一个类,它会是[class]. 还有一个特殊的修饰符,+它将附加到当前值。因此[class+],会将您指定的任何内容添加到当前值中。

还值得注意的是,HTML 规范的某些草稿要求在 中至少有一个字母ID,请参阅此问题以了解原因。

于 2013-09-12T22:31:15.820 回答