2016-04-23 64 views
0

我想知道是否有人知道如何從ClojureScript中使用jayq獲取來自網頁HTML屬性的值。ClojureScript:使用Jayq獲取屬性值

到目前爲止,我已經做到了這一點:

(ns jquerytest.core) 

(def jquery (js* "$")) 
(jquery 
    (fn [] 
     (-> (jquery "#w3s") 
      (.attr "href" "http://www.duckduckgo.com") 
     ) 
    ) 
) 

此代碼它應該是什麼並更改屬性「w3s」從http://www.google.comhttp://www.duckduckgo.com中的「href」值。

從我所知道的jQuery(上jayq被包裹),得到一個屬性的值是簡單:

var hyref = $(this).attr('href'); 
alert(hyref); 

所以,我一直在嘗試模擬出類似的行爲我的clojurescript(但只是寫入屏幕等)。下面是一組兩個例子的嘗試:

(1)

(defn attr-link [] 
    (doto (jquery ".link") 
      (.html) 
      (println) 
    ) 
) 

這個方法,只是爲了看看我是否能在所有得到的屬性「鏈接」什麼,我還是設法得到這個印刷到屏幕上:

function jquerytest$core$y(){ var G__6988 = jquerytest.core.jquery.call(null,".link"); G__6988.html(); cljs.core.println.call(null,G__6988); return G__6988; } 

(2)

(defn getVal [] 
    (-> (jquery "#w3s") 
     (.attr "href") 
    ) 
) 

我希望有人可能會願意點通過談論我應該怎樣去實現這個目標來解決我自己的愚蠢問題。

回答

0

所以經過一段時間的搜索,我設法自己偶然發現了答案。使用Dommy庫(我的代碼中的dom),我設法檢索「a」標籤的href值。

(ns hello-world.core 
    (:require [clojure.browser.repl :as repl] [dommy.core :as dom]) 
     (defn get-link-value 
     [] 
     (println (-> (dom/sel1 "#w3s") 
      (dom/attr :href) 
     ) 
    ) 

這絕不是最好的解決方案,但它是目前我唯一能找到的解決方案。