2016-12-25 147 views
0

我试图在网站上放置一个推文按钮;推文将预先填充根据div中的文本而改变的文本(可由用户更改)。正常的href值是https://twitter.com/intent/tweet?text=whatever-text-here,但由于我需要预先填充的文本根据某些条件进行更改,因此我尝试添加一个onClick函数。现在,我只是试图将href更改为“... text =”+“whatever-text-here”以查看是否有效,但将来我需要将其更改为“... text =“+ someVariable。更改按钮的href按钮?

我对此很新,有人可以解释为什么这不起作用吗?这是一个链接到codepen

HTML:

<a class="twitter-share-button" 
    href="#" onclick="tweetContent()"; 
    data-size="large"> 
Tweet</a> 

JS:

function tweetContent() { 
    document.getElementsByClassName("twitter-share-button").href="https://twitter.com/intent/tweet?text=" + "quote"; 
} 

回答

0

getElementsByClassName(如名称)返回Elements(复数形式,而不是单数)。

你需要去管理他们,一个接一个,并设置href属性:

function tweetContent() { 
    var anchorElements = document.getElementsByClassName("twitter-share-button") 
    Array.prototype.forEach.call(anchorElements, function(e) { 
     e.href="https://twitter.com/intent/tweet?text=" + "quote"; 
    }) 
} 

这里是一个工作示例:

​​

+0

感谢响应!更改我的代码,但不幸的是仍然无法正常工作。 – gridproquo

+0

“不起作用”并没有真正帮助:) – Dekel

+0

我添加了您的代码,但没有任何更改 - 当我点击codepen(http://codepen.io/anon/pen/MbdQyW)中的推文按钮时,没有预先填充的文本。代码有意义,代码片段有效;这是我从Twitter中获得的按钮的具体内容,也就是说widgets.js中有一些内容告诉按钮该做什么? – gridproquo