[英]How to Append a Div in-between two Divs based on their ID's using Jquery?
如果我有這些對象:
<div id='1'></div>
<div id='2'></div>
<div id='3'></div>
<div id='4'></div>
<div id='5'></div>
我有一個文本框:
<input type="text">
我鍵入的值:3.5動態制作(我有代碼,我需要幫助的下一部分):
<div id='3.5'></div>
如何在不首先檢查頁面上每個div的值的情況下按以下順序附加它?
<div id='1'></div>
<div id='2'></div>
<div id='3'></div>
<div id='3.5'></div>
<div id='4'></div>
<div id='5'></div>
使用:
$('#What Goes Here If I Dont know the elements on the page?').after('<div id='3.5'>Hey</div>');
任何幫助表示贊賞,
泰勒
在DOM的ID 不應該以數字開頭(他們不會是有效的)。
它們應該以字符A-Za-z
開頭,然后它們可以有數字, -
和_
跟隨。
但如果你想走你的路線試試這個:
var div = $("<div id='3.5'></div>");
div_id_after = Math.floor(parseFloat(div.get(0).id));
$('#'+div_id_after).after(div);
這是一個小提琴演示: http : //jsfiddle.net/maniator/DPMV5/
這有什么問題?
$('#3').after('<div id='3.5'>Hey</div>');
首先,ID不允許以數字開頭。
忽略這一點,如果你只允許整數,那很簡單,只需從值中取1並插入,然后重新編號。 否則,你必須先走DOM來檢查其他人的值。
添加的比較是算術,所以不幸的是你需要迭代你可以做到的div。 也許你應該做填充,如3 = 300000,所以3.5是3500000,做一個最好的比較。
也許這樣的東西會起作用:
var text = yourTextBox.value;
if(var number = Number(text))
{
$('#'+Math.floor(number)).after('<div id='+text+'>Hey</div>');
}
else alert("wrong number");
但你應該首先檢查(使用正則表達式)文本框中的文本是合法的數字...
更新。 謝謝Neal。
var newValue = 3.5;
var oldValue = Math.floor(newValue); //3
var oldValueID = ('#' + oldValue);
var newValueID = ('<div id="' + newValue + '">' + newValue + '</div>');
$(oldValueID).after(newValueID);
var input = "3.5";
var parent = Math.floor(input);
var dest = $('#div-'+parent);
dest.after(dest.clone().attr('id','div-'+input).text(input));
注意:這只能在整數之間使用一次。 更強大的方法需要查看目標中所有div的ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.