如何从带有id =“old- [id]”的span获取“Some text”并将其放入id =“new- [id]”?
<span id="old-1">Some text</span>
<span id="new-1"></span>
<span id="old-5">Some text</span>
<span id="new-5"></span>
我不知道如何在没有id
功能的情况下获取substring()
的数字部分。
我认为存在是更正确的解决方案。
感谢。
答案 0 :(得分:8)
由于你的问题并不完全清楚你要问的是什么,我会给你提供一些不同的例子:
对于单个ID,您可以这样做:
$("#new-1").text($("#old-1").text());
如果您要执行此操作的一系列顺序ID,则可以执行此操作:
for (var i = 1; i <= 5; i++) {
$("#new-" + i).text($("#old-" + i).text());
}
如果它是HTML,而不仅仅是文本,您可以使用.html()代替上述代码中的.text()。
$("#new-1").html($("#old-1").html());
或
for (var i = 1; i <= 5; i++) {
$("#new-" + i).html($("#old-" + i).html());
}
如果要查找ID为“old-”的所有对象,并处理所有这些对象,无论其数量和数量是多少,您都可以这样做:
$('[id^="old-"]').each(function() {
var newid = this.id.replace(/old/, "new");
$("#" + newid).html($(this).html())
})
这将创建一个jQuery对象,其中所有对象的id都以“old-”开头,然后将“old”替换为“new”以创建目标id值,并使用该值从源代码复制HTML到目的地。
如果在名为elem
的变量中有一个给定对象,并且您只想提取id值的数字部分,则可以使用常规表达式来匹配数字部分,如下所示:
var matches = elem.id.match(/\d+$/);
if (matches) {
var numString = matches[0];
}
答案 1 :(得分:4)
我相信您希望在事先不知道的情况下检索ID ,以便您可以复制该元素的文本。
如果这是正确的,这个简短的jQuery函数将会这样做。
$('span').each(function()
{
var idnum = $(this).attr('id').match(/[\d]/);
$('#new-' + idnum).text($(this).text());
}
);
我创建了a jsfiddle来演示。
答案 2 :(得分:1)
如果您希望将{{1>}跨度的所有的内容复制到相应的old-n
跨度,那么应该这样做:
new-n
演示:http://jsfiddle.net/nnnnnn/bcXFf/
(通常我会使用$('span[id^="old-"]').each(function() {
$('#new-' + this.id.split('-')[1]).html( $(this).html() );
});
来执行此操作,因为您已经知道字符串中出现数字的位置,但是由于您已经要求避免它,我使用了.substr()
。 )
.split()
是"attribute starts with" selector,因此上面的代码会选择所有以“{ - 1}”开头的“old-”,然后为每个范围找到相应的“new-”跨度并将内容复制到其中。
答案 3 :(得分:0)
这就是你要找的东西吗?
var id = 1;
$('#new-'+id).text($('#old-'+id).text());
答案 4 :(得分:0)
JavaScript paseInt()函数将仅返回混合字符串/整数变量的整数部分。如果将$('#old-1).attr('id')的值存储在变量中,然后将parseInt存储在其中,则应仅返回该数字。
答案 5 :(得分:0)
使用类似的东西
$(document).ready(function () {
var el = $("#old-1");
var oldId = el.attr('id').replace(/[A-Za-z$-]/g, "");
$("#new-" + oldId).text(el.text());
});
答案 6 :(得分:0)
我会用:
$(document).ready(function(){
var spanText = $('#old-1').text();
$('#old-1').text(null);
$('#new-1').text(spanText);
});
这将采用旧文本并将其放入新文本中。 如果你必须这样做会有多个id,那么你只需编写一个循环来完成它或使用$ .each方法迭代所有的id。