2016-04-23 34 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) 
     ) 
    ) 

这绝不是最好的解决方案,但它是目前我唯一能找到的解决方案。