Javascript 从多个跨度标记获取标题值

Javascript 从多个跨度标记获取标题值,javascript,Javascript,我有一个带tag的多个li标记,因为跨度在li标记内,它们具有相同的id名称。 我希望在选择特定的li标记时能够获得span标记内的值。 这是我的html 代码 <li> <form action="" method="post" name="topdivform"> <span id="editedpart" title="first div"><a href="#" title="edit" id="edit" onclick

我有一个带tag的多个li标记,因为跨度在li标记内,它们具有相同的id名称。 我希望在选择特定的li标记时能够获得span标记内的值。 这是我的html 代码

<li>
    <form action="" method="post" name="topdivform">
        <span id="editedpart" title="first div"><a href="#" title="edit" id="edit" onclick="showeditpage()">first div</a></span>
    </form>
</li>
<li>
    <form action="" method="post" name="topdivform">
        <span id="editedpart" title="second div"><a href="#" title="edit" id="edit" onclick="showeditpage()">second div</a></span>
    </form>
</li>
<li>
    <form action="" method="post" name="topdivform">
        <span id="editedpart" title="third div"><a href="#" title="edit" id="edit" onclick="showeditpage()">third div</a></span>
    </form>
</li>
  • 这是我的javascript

    var elem = document.getElementById("editedpart");
    var str ="";
    for(var i = 0; i< elem.length; ++i){
        str = elem[i].innerText;
        alert(str);
    
    }
    
    var elem=document.getElementById(“editedpart”);
    var str=“”;
    对于(变量i=0;i
    它没有在span标记中获取文本
    谢谢

    因为您为多个元素提供了相同的id,所以无法预测调用GetElementById将返回哪个元素。您需要重新构造标记,以避免为多个元素提供相同的id。

    您可以将eventlistener()添加到li的click事件中,并将子跨度节点中的全局变量设置为选择值。您可以使用类名(
    )或
    数据-*
    )来表示在单击事件期间“选择”了哪个范围。第一个很好,因为您只需根据需要更改该值。第二种方法要求您解析DOM,并在每次选择更改时替换该属性或类

    另外,任何两个元素都不应该共享一个
    id
    文档。getElementById
    返回单个对象。您不能这样使用,Id应该是唯一的。不要将Id用于“editedpart”,而是使用data-*属性或class属性。为什么在没有任何表单控件的情况下使用表单?Lyn Headley,我该怎么做才能在不写太多东西的情况下获得价值呢code@user1496307您应该尽可能多地编写代码。=)不是吗,我用过你的方法,但它要么显示第一个跨度,要么显示最后一个跨度
    var elem = document.getElementsByName("topdivform");
    
    var str ="";
    for(var i = 0; i< elem.length; ++i){
        str = elem[i].textContent || elem[i].innerText;
        alert(str);
    }
    
    var elem = document.querySelectorAll("li > form[name=topdivform] > span > a[title=edit]");