javascript - 如何使用 jQuery 添加新的 HTML 节点

标签 javascript jquery html

所以我和我的 friend 正在尝试为网站制作用户脚本,但无法解决这个问题。我们希望从网站的 shoutbox 添加一个脚本,并将其添加到右侧的名称中,以便能够在此处用他们的名字 @people。

@simple 的脚本在这里,它已经在站点 HTML 中,我们只是想移动它。

<li class="shout-at_12 clickable mr at-shout pause-shout" title="@" data-at-uname="Tattoo"></li>

我们目前的尝试是——

function onLoad() {
    $( document ).ready(){
        var uname = $(this).data('data-at-uname');
        $( "a.online-name" ).add(<li class="shout-at_12 clickable mr at-shout pause-shout" title="@" data-at-uname=" + uname + "></li>)
    }
}

但没有成功。整个页面的 HTML 可以在这里找到 - http://pastebin.com/J6kk6LSn

我们使用的插件是 Greasemonkey 如果它有帮助的话,我们已经尝试了几个小时但无济于事。如果有人可以提供帮助,我们将不胜感激。

最佳答案

你需要纠正两件事:
1. 正确语法 data-at-uname阅读 - 看下面的代码
2. 添加 html 节点 - 将 html 放在单引号中并使用 .append()

使用下面的代码:

$( document ).ready(function(){
var uname = $(this).data('at-uname');// read it like this
$( "a.online-name" ).append('<li class="shout-at_12 clickable mr at-shout pause-shout" title="@" data-at-uname="' + uname + '"></li>');
});

编辑:根据讨论,OP 想为 <span class="online-name" 中的每个 anchor 添加 li ,所以这里是代码:

 $(document).ready(function(){
    $( ".online-name a").each(function(){
        var uname = $(this).data('at-uname');
        // add li before anchor
        $(this).before('<li class="shout-at_12 clickable mr at-shout pause-shout" title="@" data-at-uname="' + uname + '"></li>');

       // add li after anchor
      $(this).after('<li class="shout-at_12 clickable mr at-shout pause-shout" title="@" data-at-uname="' + uname + '"></li>');
    });
  });

关于javascript - 如何使用 jQuery 添加新的 HTML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24753542/

相关文章:

jQuery 触发器和反向 .animate

jQuery:选择具有唯一 ID 的所有输入(正则表达式/通配符选择器)

javascript - 如何在创建 dom 节点之前找到它的尺寸?

html - 中心百分比网格,HTML

javascript - 卓别林在获取后如何渲染模型? View 如何知道获取已完成?

javascript - 如何在超时时打开此模式?

javascript - 如何在全屏模式下在 Plyr(html5 视频播放器)上显示叠加层?

javascript - 如何将 jQuery each() 变成常规的 javascript 循环

angularjs - ng-template 脚本内的表单验证 angularjs

javascript - 如何在两个数字之间的范围内动态创建不同的步长