Javascript 从多个跨度标记获取标题值
我有一个带tag的多个li标记,因为跨度在li标记内,它们具有相同的id名称。 我希望在选择特定的li标记时能够获得span标记内的值。 这是我的html 代码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
<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]");