2012-12-26 54 views
1

我想使用JavaScript來添加一個div裏面的鏈接,這個div沒有編號,但它確實有一個類,但是:如何將元素附加到一個div是不進行身份

<div class="details"> 
    <div class="filename">test.xml</div> 
    <div class="uploaded">25/12/2012</div> 

    <a href="#" class="delete">Delete</a> 

    <div class="compat-meta"></div> 
</div> 

如何在「details」div內和「delete」鏈接上添加鏈接? 我要添加的鏈接是:

<a href="#edit_link" class="edit">Edit</a> 
+0

將jQuery的可以接受的使用?否則,你會得到很多getElementsByClassName和insertNode代碼,這可能無法在所有瀏覽器中工作 – mplungjan

+0

任何事情都可以,只要我可以在網頁頁腳中打印腳本 – Jenny

+0

你嘗試過什麼嗎? – Hkachhia

回答

1

去對於jQuery,它很簡單,乾淨。

你可以抓住任何元素與特定的階級說

<div class="className" ></div> 

這樣

<script> 
$('.className'); 
</script> 

現在你想僅僅有delete類錨之前,一些其它元素追加,還有比你能做到這個:

$('.delete').before('<a href="#edit_link" class="edit">Edit</a>'); 

還有其他的方法也可以PPEND元素任何其他元素內或DOM

1. $('.className').append('<div> i will be appended at the bottom of this element</div>'); 
2. $('.className').after('<div> i will be appended right after this element</div>'); 

爲使用jQuery,你需要它的API,直接使用this鏈接在你的頁面,或者下載最新的jQuery API和使用它。 它更簡單,更容易。

+0

謝謝!有用! – Jenny

0
function hasClass(element, className) { 
    var s = ' ' + element.className + ' '; 
    return s.indexOf(' ' + className + ' ') !== -1; 
} 

/** 
* from: http://www.dustindiaz.com/getelementsbyclass 
*/ 
function $class(className, context, tag) { 
    var classElements = [], 
     context = context || document, 
     tag = tag || '*'; 

    var els = context.getElementsByTagName(tag); 
    for (var i = 0, ele; ele = els[i]; i++) { 
     if (hasClass(ele, className)) { 
      classElements.push(ele); 
     } 
    } 
    return classElements; 
} 

然後使用$class('delete')定位元素,然後在前面加上新元素

+0

對不起,我在javascript下的入門級別。如何使用$ class('delete')並添加新的? – Jenny

+0

好,那麼只需按照jquery http:// stackoverflow的另一個答案。com/questions/14037048 /如何追加一個元素到一個div這是沒有ID/14037143#answer-14037266 – liunian

0

它總是最好通過ID進行搜索,這是最有效的。但是,如果涉及到它,您可以按類或標籤名稱查找元素。

我建議使用jQuery,並改變現有的標記,你可以:

$('a').attr('href', '#edit_link').text('Edit').removeClass('delete').addClass('edit'); 

如果不可能添加一個id你發現的元素,在樹中較高找到一個元素有一個id,並從那裏:

$('#someHigherId > div > a')... 
+0

需要刪除鏈接,我需要添加上面的編輯鏈接它 – Jenny

0

你可以使用jQuery:

$('div.details a.delete').before('<a href="#edit_link" class="edit">Edit</a>'); 
0

使用純JavaScript:

var div = document.getElementsByClassName('details')[0], 
    deleteLink = div.getElementsByClassName('delete')[0], 
    editLink = document.createElement('a'); 

editLink.textContent = 'Edit'; 
editLink.className = 'edit'; 
editLink.href = '#edit_link'; 

div.insertBefore(editLink, deleteLink); 
0
You can do it using javascript like this 

<script type="text/javascript"> 
    function addtext(what){ 
     if (document.createTextNode){ 
      var link = document.createElement('a'); 
      link.setAttribute('href', '#edit_link'); 
      link.setAttribute('id', 'edit'); 
      link.setAttribute('class', 'edit'); 
      document.getElementsByTagName("div")[0].appendChild(link) 
      document.getElementById("edit").innerHTML = what; 
     } 
    } 
</script> 

<div class="details" id="mydiv" onClick="addtext('Edit')"> 
    <div class="filename">test.xml</div> 
    <div class="uploaded">25/12/2012</div> 

    <a href="#" class="delete">Delete</a> 


    <div class="compat-meta"></div> 
</div>