2013-04-28 126 views
-2

我有一個帶有標籤的多個li標籤,因爲跨度在li標籤內,它們具有相同的id名稱。 我希望能夠在選擇paticular li標籤時獲得span標籤內的值。 這裏我的HTML 代碼從多個span標籤獲取標題值

<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); 

} 

它沒有得到文本insidethe span標籤 感謝

+2

[jQuery。](http://jquery.com)另外,沒有兩個元素應該共享'id'。 – michaelb958 2013-04-28 05:02:48

+0

'document.getElementById'返回單個對象。你不能像這樣使用,Id應該是唯一的。 – Sachin 2013-04-28 05:03:18

+0

而不是將id用於「editedpart」,請使用data- *屬性或class屬性。 – Yatrix 2013-04-28 05:32:51

回答

4

既然你給同一個ID多個元素,無法預測調用GetElementById將返回哪個元素。您需要重構標記以避免給多個元素使用相同的ID。

+0

Lyn Headley,我該怎麼做,以便我可以在不寫太多代碼的情況下獲得價值 – user1496307 2013-04-28 05:07:53

+0

@ user1496307您應該關注如何編寫儘可能多的代碼。 =) – Yatrix 2013-04-28 05:30:52

2
var elem = document.getElementsByName("topdivform"); 

var str =""; 
for(var i = 0; i< elem.length; ++i){ 
    str = elem[i].textContent || elem[i].innerText; 
    alert(str); 
} 

如果您需要在您的DOM選擇更具體的,你可以使用querySelectorAll(),雖然它不是在IE6/7的支持。

var elem = document.querySelectorAll("li > form[name=topdivform] > span > a[title=edit]"); 
+0

我不是,我使用你的方法,但它要麼顯示第一個跨度或最後一個 – user1496307 2013-04-28 05:22:08

0

你可以添加一個事件偵聽(https://developer.mozilla.org/en-US/docs/DOM/EventTarget.addEventListener)到李的click事件,並設置爲從您選擇值的子跨度節點的全局變量。您可以使用類名稱(<span class="isSelected"></span>)或data-*<span data-selected="true"></span>)來表示點擊事件期間哪個跨度是「被選中」的。第一個很好,因爲你只是根據需要改變這個值。第二個要求您解析DOM,並在每次選擇更改時替換該屬性或類。