Jquery 基于确定数据属性设置html内容

Jquery 基于确定数据属性设置html内容,jquery,html,Jquery,Html,我有这个带有数据属性的列表 <li id="1"><a href="#" class="me" data-lrnumero="1">Hello</a></li> <li id="2"><a href="#" class="me" data-lrnumero="2">Hello</a></li> <li id="3"><a href="#" class="me" data-lrn

我有这个带有数据属性的列表

<li id="1"><a href="#" class="me"  data-lrnumero="1">Hello</a></li>
<li id="2"><a href="#" class="me"  data-lrnumero="2">Hello</a></li>
<li id="3"><a href="#" class="me"  data-lrnumero="3">Hello</a></li>
<li id="4"><a href="#" class="me"  data-lrnumero="4">Hello</a></li>
<li id="5"><a href="#" class="me"  data-lrnumero="5">Hello</a></li>

但是有点复杂。我只想设置获取
的数据属性,然后设置新内容请检查以下内容:

var data = [];
$('li a').each(function(){
    data.push($(this).html());  
})

console.log(data);
$('li').click(function(){
    element = $(this).find('a');
    element.html(data[$('li').index(this)]+element.data('lrnumero'));
});
如果您需要更多详细信息,请告诉我。

jsiddle:

对于新的示例代码,您需要将单击的元素保留在本地变量中(例如下面的
$this
),而不是用ID替换整个LI!:

$('.me').click(function (e) {
    e.preventDefault();
    var $this = $(this);
    $.ajax({
        url: "someurl",
        type: 'get',
        dataType: 'html'
    }).done(function (data) {
        if (data == 'true') {
            var iddata = $this.data('lrnumero');
            $this.text("Hello " + iddata);
        }
    });
});

你做了什么努力?你试过什么吗?阅读jQuery文档,可能是一个很好的开始。这里有一首图图可以帮助你开始:是的,我编辑了我的答案。我让它工作,但它很复杂。我会找到一个解决方案,在
  • 下面的更新答案中不添加id,以避免替换li(因此您不需要id)。每次单击都会添加id。e、 g.继续单击链接2,您将得到
    Hello2222
    :正确:您应该保存它们,然后开始添加值,事实上,现在情况更糟了。检查问题中新添加的代码,因为问题已经改变了很多。我尝试了一下,当我设置
    $this.text=“Hello”+iddata时,我得到了“Hello NaN”对不起,输入错误。应该保持为
    text()
    。iddata来自单击的锚点。如果仍然存在问题,请提供一个指向完整代码的JSFIDLE链接,以便我检查。由于您的支持,我得到了解决方案。我移动
    variddata=$this.data('lrnumero')到顶部,在
    e.preventDefault
    下面。然后,它起作用了。非常感谢@吉安卡洛·文图拉·格拉纳多斯:很高兴你最终到达了那里,但是移动那条线本不需要。如果它仍然是
    $(this)
    而不是
    $this
    ,它就会崩溃,但我很好奇为什么它失败了,那么它对我来说很好用。可能
    var$this
    是变量名的指定问题
    $('li a').click(function(e){
        // Stop page jumping to top - as it is a bookmark link
        e.preventDefault();
        $(this).text("Hello " + $(this).data('lrnumero'));
    });
    
    $('.me').click(function (e) {
        e.preventDefault();
        var $this = $(this);
        $.ajax({
            url: "someurl",
            type: 'get',
            dataType: 'html'
        }).done(function (data) {
            if (data == 'true') {
                var iddata = $this.data('lrnumero');
                $this.text("Hello " + iddata);
            }
        });
    });