我有一个创建的动态订单列表,其类名如下
$orderList = $('.questOl');
for(var i=0; i<questList.length; i++){
tr.push('<li class="questList">' + questList[i].questText + '</li>');
tr.push('<p> </p>')
}
$orderList.append($(tr.join('')));
然后我想在选择它时获取列表值。我在这个网站上尝试了几个代码片段。它给出了未定义的值。使用这行代码的最接近的尝试。
var x = $('.questOl').find('.questList').text();
但它从列表中获取所有价值。我想要的只是当前选定的值。有什么想法吗?
答案 0 :(得分:1)
你可以设置一个&#34; id&#34;基于迭代器的<li>
标签:
for(var i=0; i<questList.length; i++){
tr.push('<li class="questList" id="quest-' + i + '">' + questList[i].questText + '</li>');
tr.push('<p> </p>')
}
然后访问它:
var x = $('#quest-1').text();
希望它有所帮助。
编辑
如果您正在使用click
事件来选择列表中的元素,则可以使用以下函数获取其值:
$('.questList').click(function(){
var x = $(this).text();
});
在这种情况下,不需要&#34; id&#34;或&#34;数据&#34;属性。
PS:纠正我,如果我错了但有数据属性,我认为你有同样的问题要知道使用巫婆。
答案 1 :(得分:0)
以下是您可以做的事情:
for(var i=0; i < questList.length; i++)
{
tr.push('$('<li/>',
{
class : "questList",
text : questList[i].questText
}));
tr.push('$('<p/>',
{
text : " "
}));
}
在选择它时获取li值。
由于您是动态创建元素,因此可以在您创建的li上委派click事件并在文档级别注册它,以便文档可以监听标记。
$(document).on('click','.questOl .questList', function()
{
var selectedLiText = $(this).text();
});