Jquery attr()在单击函数内部不起作用

时间:2016-09-18 14:41:39

标签: javascript jquery

我已经尝试了3天,弄清楚为什么attr()不能在Jquery中的函数内部工作。可能看起来问题已经得到解答,但它们都没有为我工作。

我正在尝试从推文按钮更改{{1}}属性以发布当前文本。

这是我的代码:

{{1}}

Jsfiddle中的示例:poly2mask

2 个答案:

答案 0 :(得分:1)

您的问题并不代表整体情况。这不起作用的原因是因为您包含以下脚本:

<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

此脚本会更改您的HTML。如果未包含脚本,则生成的按钮HTML为

<a class="twitter-share-button" href="https://twitter.com/share" data-show-count="false" data-size="large">Tweet</a>

但是,只要加载并执行此脚本,您的HTML就会变为

<a class="btn" id="b" href="https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Ffiddle.jshell.net%2F_display%2F&amp;ref_src=twsrc%5Etfw&amp;tw_p=tweetbutton&amp;url=https%3A%2F%2Ffiddle.jshell.net%2F_display%2F">
    <i></i>
    <span class="label" id="l">Tweet</span>
</a>

您可以看到新HTML没有类twitter-share-button。我不确定您要使用data属性实现什么,但您需要考虑其他一些方法来实现此目的。

答案 1 :(得分:0)

$(".twitter-share-button").attr("data-text", "Hello World");
var dataObj = $(".twitter-share-button").data();
$("#change").on("click", function() {
    dataObj.text = "Hello Universe";
    $(".twitter-share-button").data(dataObj);
});

试一试:https://jsfiddle.net/667f171z/1/