簡體   English   中英

如何根據ID使用Jquery在兩個Div之間添加Div?

[英]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。

http://jsfiddle.net/FB8xG/3/

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM