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);
}
});
});