如何访问有序列表的所有元素

3
我使用JavaScript随机访问数组元素并生成列表(使用此链接Getting a random value from a JavaScript array),在第一个div中打印它们。现在我想在另一个div中访问所有元素,但是我得到的结果是像LI、BR等我在将元素附加到div时提到的东西(我使用了此链接Get all elements nested in UL tag)。
这是代码:
<div   id="list1" >
                        <ol id="olMediators">

                         </ol>
                    </div>

为了进行随机访问,我正在使用函数

function getRandomNumber()
    {

    var items= ["Mediator 1","Mediator 2","Mediator 3", "Mediator 4","Mediator 5","Mediator 6","Mediator 7","Mediator 8","Mediator 9"];

    var newitems=[];
        for(var i=0;i<5;i++){
    var item = items[Math.floor(Math.random()*items.length)];


        $("#olMediators").append('<li>'+item+'</li>'+'<br/>' );


     }
    }

为了将它们打印到另一个div中,我使用jQuery(在按钮上点击):

$('#getMediators').click(function(){

                $('#radioMediators').hide();

               var el = document.getElementById("olMediators").getElementsByTagName("*");
                for (var i=0; i<el.length; i++) {
                 alert(el[i].tagName);
                }

那我做错了什么呢?如何获取这些元素并将它们打印到其他地方(在不同的 div 中)?谢谢。

br不是ol元素内的有效元素,只有li是。您还不必要地混合使用JavaScript和jQuery,建议您尝试http://try.jquery.com。 - James Donnelly
我已经用 jQuery 和 JavaScript 代码检查了,但它仍然无法工作。有什么猜测吗? - Shyam Dixit
2个回答

1
尝试
$('#getMediators').click(function () {

    $('#radioMediators').hide();

    var el = $('#olMediators *').get();
    for (var i = 0; i < el.length; i++) {
        alert(el[i].tagName);
    }
});

演示:Fiddle


1

纯jQuery解决方案:

$('#getMediators').click(function(){
    $('#radioMediators').hide();
    $("#olMediators li").each(function(){
       alert($(this).text());
    });
});

这里是 Fiddle


1
@ZathrusWriter did :) - codingrose
2
哈哈,我本来想告诉提问者他做错了什么(因为这是他们问题的一部分)...但还是要给你点赞更新 :) - Zathrus Writer
@Hiral:这个工作了吗??在这里它不起作用。我用纯jQuery和纯JavaScript代码进行了检查。两者都显示相同的输出。有什么遗漏吗?? - Shyam Dixit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接