2013-06-27 2 views
0

Я хочу, чтобы выбрать все <a> с классом my в liftweb и установите его текст ???:Как выбрать «a.my» как jquery в лифте?

val x = <div> 
      <a><span class="my">xxx</span></a> 
      <a class="my">yyy</a> 
     </div> 

Я попытался:

"a .my *" #> "???" 

и

"a" #> (".my *" #> "???") 

Но ни работ, потому что оба из них конвертируют x в:

<div> 
    <a><span class="my">???</span></a> 
    <a class="my">???</a> 
</div> 

которые являются неправильными, они должны преобразовывать только второй <a>.

Каков правильный код?

ответ

2

Насколько я знаю, нет прямого способа сделать это с помощью Lift 2.5 и ранее. Я считаю, что они добавят поддержку этого более надежного типа привязки к Lift 3, но поскольку его еще нет, вам нужно будет обойти его.

Так как вы можете работать непосредственно с NodeSeq на праве CssSelector, что-то, как это должно позволить вам сделать то, что вы хотите сделать:

"a" #> { ns:NodeSeq => 
    if((ns \ "@class").text == "my") 
    ("* *" #> "???").apply(ns) 
    else 
    ns 
}