2015-04-10 5 views
1

Вот что я пытаюсь сделать, я могу заменить Dom jQuery, но я не знаю, как получить значение Dom. Это позор.
Gist
Это сущность, за которой я последовал за ней.
Так что я прошу автора происхождения, но ответа пока нет. PS: Я просто хочу попробовать несколько cljs в браузере, поэтому я не использовал lib, как jayq. Я пробовал что-то вроде (.val "yes"), но это кажется неправильным.Использование clojurescript с jquery?

(ns hello-world.jquerytest) 
(enable-console-print!) 
(def jquery (js* "$")) 

(defn x [] 
    (-> 
    (jquery ".meat") 
     (.html "yes"))) 

(jquery 
    (fn [] 
    (x) 
    (-> (jquery "li.numbers") 
     (.html "pink") 
     (.append "banana")))) 
+0

'.html' возвращает строку. Вероятно, вы захотите использовать «doto» clojure. Если это решает проблему, пожалуйста, ответьте на нее самостоятельно с помощью некоторых объяснений и ссылок. – ClojureMostly

+0

Спасибо за подсказку, но не нужно добавлять 'doto', просто перечислите функцию, подобную конвейеру. –

ответ

1

Вот мой ответ, основанный на комментарий Ванессы Я попытался

(defn x [] 
    (-> 
    (jquery ".meat") 
    (.html) 
    (println))) 

Это будет выводить значение, которое я хочу. Если я использую doto Он напечатает # < [object Object]> в консоли, которую я не хочу.

(defn x [] 
    (-> 
    (doto 
     (jquery ".meat") 
     (.html) 
     (println)))) 
+0

Вы изменили свой код. Если вы хотите использовать вызов '.append' в конце, вам нужно использовать' doto'. Нет смысла обматывать форму в '->' одной формой. Это ничего не значит. – ClojureMostly

+0

'(defn y [] (doto (jquery" .meat ") (.html) (println)))' Я тоже связал это, вы имеете в виду, что я могу удалить '->'. Но этот файл все еще печатает # <[object Object]>, и я обнаружил, что '->' похоже на то же действие, что и 'doto' –

+0

Вы путаетесь, используя' -> 'и doto. Просто напишите их без '->'. – ClojureMostly