2016-09-27 90 views
0

我想在每個ul元素中的兩個列表項之間插入一個鏈接。目前我的代碼只在最後一個ul元素中插入鏈接。在每個列表元素中插入鏈接標籤

<html> 
<div class="list"> 
    <ul> 
     <li>what</li> 
     <li>now</li> 
    </ul> 
</div> 
<div class="list"> 
    <ul> 
     <li>what</li> 
     <li>now</li> 
    </ul> 
</div> 

<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
<script> 
    var tag = document.createElement("A") 
    var linkedTag = tag.setAttribute('href', '/'); 
    tag.innerHTML = "UP" 

    $('.list').each(function(i, obj) { 
    var one = obj.childNodes[1]; 
    one.insertBefore(tag, one.childNodes[2]) 
    }); 
</script> 
</html> 
+0

需要爲每個要插入...否則你只是走動 – charlietfl

+0

同一個'我想插入兩個列表項之間鏈接的每個UL element.' - 之間但在ul元素? –

回答

2

有一個更簡單的方法來做到這一點與jQuery

$('.list').append(function() { 
    return $('<a>', { href : '/', text : 'UP' }) 
}); 

的原因,你的代碼不能正常工作,是因爲你只創建一個單一的錨,並移動它,所以它結束了在最後一個地方被移動到。

另請注意,直接在UL中插入錨點,這就是您正在做的操作,它是無效的標記。如果你想將每個UL之前的錨,你會做

$('.list ul').prepend(function() { 
    return $('<a>', { href : '/', text : 'UP' }) 
}); 

如果你想錨其間兩個已有的李元素,你必須來包裝錨Li元素以及

$('.list ul li:first-child').after(function() { 
    return $('<li>', { 
     html : $('<a>', { href : '/', text : 'UP' }) 
    }); 
}); 

FIDDLE