我一直在尝试使用指定 eval 函数的 Component 类型类在 Purescript 中开发组件系统。eval 函数可以由组件的每个子组件递归调用,实质上是获取输入的值。
由于组件可能希望使用运行时值,因此还向 eval 传递了一条记录。我的目标是要求顶级 eval 的 Record 参数中的行包含每个子组件的所有行。对于本身不使用任何行的组件来说,这并不是太困难,但它们的单个子组件确实如此,因为我们可以简单地将子组件行传递给组件。这显示在evalIncrement.
import Prelude ((+), one)
import Data.Symbol (class IsSymbol, SProxy(..))
import Record (get)
import Prim.Row (class Cons, class Union)
class Component a b c | a -> b where
eval :: a -> Record c -> b
data Const a = Const a
instance evalConst :: Component (Const a) a r where
eval (Const v) r = v
data Var (a::Symbol) (b::Type) = Var …Run Code Online (Sandbox Code Playgroud) <div id="main">
<div id="one">Heading one</div>
<div id="two">Heading two</div>
<div id="three">Heading three</div>
<div id="four">Heading four</div>
:
:
</div>
Run Code Online (Sandbox Code Playgroud)
我想根据DOM的位置选择div.
对于Eg:我想在div之后选择所有div id = two.
注意:主div是可排序的,因此代码应处理动态.
我是否必须循环并计算子div的总数,而不是(total number of child divs - position of div with id=two )在div之后给出多少div id=two.
还是有更好的方法吗?