如何使用javascript在输出中单独显示列表项

时间:2014-04-22 06:51:20

标签: javascript jquery html

我创建了一个包含搜索框的html。搜索后,我将获取列表中的数据。但是,当我点击它时,我使用this

获取所有列表项的值
var text = $(this).text(); method

在我的应用中,如果我点击一个项目,它应该只给我列表项的值而不是其他。我在某个地方犯了错误,但我不知道在哪里 这是我的代码:

HTML

<ul data-role="listview" class="ui-li-icon">
    <li id="list"></li>
</ul>

这是我的JavaScript代码:

function successCallback(responseObj)
{
    // alert(JSON.stringify(responseObj));
    form.reset();
    dataj=JSON.stringify(responseObj);
    len=dataj.length;
    for(i=0;i<len;i++)
    { 
        var output = "<ul>" + responseObj.merchants[i].imageFileName+ " " + "<font size=3 color=green>"  + responseObj.merchants[i].merchantName  +  "</font>"  +"</ul>";
        $('#list').append(output);
    }
    $('#list').click(function() {
        var index = $(this).index();
        var text = $(this).text();
        alert('Index is: ' + index + ' and text is ' + text);
    });
}

所以当我在搜索某个项目时。我得到了以下列表:

ab
abc

但是当我点击它时。我得到了ababc的价值。我只想要点击一个值。

3 个答案:

答案 0 :(得分:1)

//通过以下代码替换您的点击事件

$('.ui-li-icon li').click(function() {
    var index = $(this).index();
    var text = $(this).text();
    alert('Index is: ' + index + ' and text is ' + text);
});

答案 1 :(得分:1)

$('#list').append(output);

我信徒名单是你给列表项目的ID,即

  • 现在,这会混淆浏览器,因为id应该是UNIQUE,在这里你将这个id赋予所有列表项。

    如果你解决了这个问题,你的问题应该得到解决!

    或者您可以使用此

    简单地附加点击事件
    $('.ui-li-icon li').click   //Your click event handler
    
  • 答案 2 :(得分:0)

    很难理解你在问什么。据我所知,你正在寻找这样的东西:

    $('#list li').on('click', function(){
        alert("index: "+$(this).index() + " value: "+ $(this).text()); 
    });
    

    这是一个小提琴http://jsfiddle.net/Jw8qz/