找到input元素的值

时间:2015-02-20 20:31:45

标签: clojurescript

我认为这很简单,但似乎我忽视了一些事情。

(ns main.core
  (:require [dommy.core :refer-macros [sel sel1]]))

(sel1 :#my-input) => #<[object HTMLInputElement]>

(.value (sel1 :#my-input)) 
=> #<TypeError: document.querySelector(...).value is not a function>

2 个答案:

答案 0 :(得分:3)

在ClojureScript中,我们有两种与JavaScript互操作的特殊形式:..-

.应该用于调用对象的方法,.-应该用于访问属性(包括函数作为值)。如果您查看Dommy库中value函数的source code,您会看到它使用.-特殊表单。

看看这里:https://github.com/clojure/clojurescript/wiki/Differences-from-Clojure#host-interop

此备忘单也很有用:https://himera.herokuapp.com/index.html

答案 1 :(得分:2)

虽然我不是100%为什么.value无法正常工作,但以下工作非常出色:

(ns main.core
  (:require [dommy.core :as dommy :refer-macros [sel sel1]]))

(sel1 :#my-input) => #<[object HTMLInputElement]>

(dommy/value (sel1 :#my-input)) 
=> "my-input-value"