【问题标题】:Use jquery to alter link attribute使用 jquery 更改链接属性
【发布时间】:2016-03-30 14:28:31
【问题描述】:

我正在尝试制作一个页面,当您单击“报价”按钮时会生成报价,然后您可以使用推特按钮发布报价。 Here 是 twitter 按钮的链接。

推特按钮允许您通过更改“数据文本”属性来发布您想要的特定文本。

我想使用我的“引用”按钮生成一个引用,同时更改我的 twitter 按钮的数据文本属性,以便我可以在之后单击 twitter 按钮并发布特定的引用。

到目前为止,我有这个,这是我的点击功能的一部分:

$("a").prop("data-text", quotes[j]);

其中 j 是引用数组的索引,但我似乎无法让它工作。

编辑:这是一个工作演示:http://codepen.io/michaelaharvey/pen/wMzGJR

【问题讨论】:

    标签: javascript jquery twitter


    【解决方案1】:

    我会有所不同,建议使用jquery数据方法https://api.jquery.com/data/

    $("a").data("text", quotes[j]);
    

    【讨论】:

    • 数据方法不走运。我不确定我做错了什么
    • 你能发布你的部分 html 和这个引号数组变量吗?这可能有助于我们追踪您的问题
    • 也许你可以看看我的演示?谢谢!!! codepen.io/michaelaharvey/pen/wMzGJR
    • 您能否提供说明添加数据文本的文档?看起来您从 twitter 添加的 html 将您的锚点更改为他们的自定义 iframe?
    • 如果您更改 data-text 属性,它会更改发布的内容。也许还有其他方法可以做到?
    【解决方案2】:

    '://platform.twitter.com/widgets.js`` loads aniframeinto.asdf, removing exisitingaelement within.asdf. When attempting to accessaelement withiniframe`

    Uncaught SecurityError: Failed to read the 'contentDocument' 
    property from 'HTMLIFrameElement':
    Sandbox access violation: Blocked a frame at   
    "http://stacksnippets.net" from accessing a frame at 
    "http://platform.twitter.com".  
    Both frames are sandboxed and lack the "allow-same-origin" flag.
    

    登录到console

    【讨论】:

    【解决方案3】:

    你应该可以使用.attr

    $("a").attr("data-text", quotes[j]);
    

    【讨论】:

    【解决方案4】:

    如果您检查 DOM,您将找不到任何 a 标记,但 .data,.attr,.prop 将要求该元素存在于 DOM 中

    FROM THIS LINK

    存储与匹配元素关联的任意数据,或在命名数据存储中返回匹配元素集中第一个元素的值。

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 2010-11-22
      • 2020-06-15
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多