如何使用 Jquery 根据 ID 在两个 Div 之间追加一个 Div?

发布于 2024-11-06 18:22:39 字数 816 浏览 0 评论 0原文

如果我有这些对象:

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

感谢任何帮助,

泰勒

If I have these objects:

<div id='1'></div>
<div id='2'></div>
<div id='3'></div>
<div id='4'></div>
<div id='5'></div>

I have a textbox:

<input type="text">

Where I type in the value: 3.5 to dynamically make (I have the code for this, the next part I need help with):

<div id='3.5'></div>

How can I attach it in this order below, without first checking to see the value of every div on the page?

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

Using:

$('#What Goes Here If I Dont know the elements on the page?').after('<div id='3.5'>Hey</div>');

Any help is appreciated,

Taylor

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

⒈起吃苦の倖褔 2024-11-13 18:22:39

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/

IDs in the DOM should not start with a number (they would not be valid).
They should start with a character A-Za-z and then they can have numbers, - and _ following.

but if you want to go your route try this:

var div = $("<div id='3.5'></div>");
div_id_after = Math.floor(parseFloat(div.get(0).id));

$('#'+div_id_after).after(div);

Here is a fiddle demo: http://jsfiddle.net/maniator/DPMV5/

九厘米的零° 2024-11-13 18:22:39

这有什么问题吗?

  $('#3').after('<div id='3.5'>Hey</div>');

What is wrong with this ?

  $('#3').after('<div id='3.5'>Hey</div>');
〆一缕阳光ご 2024-11-13 18:22:39

首先,ID 不允许以数字开头。

忽略这一点,如果只允许整数,很简单,只需从值中取出 1 并插入它,然后对其余部分重新编号。否则,您必须先遍历 DOM 来检查其他值。

Firstly IDs aren't allowed to start with a number.

Ignoring that, if you are only allowing integers, it's easy, just take 1 from the value and insert it, then renumber the rest. Otherwise you'll have to walk the DOM to check the values of the others first.

又爬满兰若 2024-11-13 18:22:39

添加的比较是算术运算,因此不幸的是,您需要迭代可以执行此操作的 div。也许你应该做填充,比如 3 = 300000,所以 3.5 是 3500000,以进行最佳比较。

that comparision to add is arithmetic, so unfortunelly you need to iterate over the divs you could do this. maybe you should do padding, like 3 = 300000, so 3.5 is 3500000, to do a best comparision.

開玄 2024-11-13 18:22:39

也许类似的东西会起作用:

var text = yourTextBox.value;
if(var number = Number(text))
{
    $('#'+Math.floor(number)).after('<div id='+text+'>Hey</div>');
} 
else alert("wrong number");

但是你应该首先检查(使用正则表达式)文本框中的文本是否是合法的数字......

Maybe something like that would work:

var text = yourTextBox.value;
if(var number = Number(text))
{
    $('#'+Math.floor(number)).after('<div id='+text+'>Hey</div>');
} 
else alert("wrong number");

But you should probably check first (with a regex) that the text within the textbox is a legitimate number…

陌上芳菲 2024-11-13 18:22:39

现场演示

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。

Live Demo

var input = "3.5";
var parent = Math.floor(input);
var dest = $('#div-'+parent);

dest.after(dest.clone().attr('id','div-'+input).text(input));

Note: This will only work once between integers. A more robust method DOES require looking at the IDs of all divs within the destination.

兰花执着 2024-11-13 18:22:39

已更新。谢谢尼尔。

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

updated. thanks 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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文