我怎样才能从span中用id="old-id“获取”一些文本“,并把它放到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>我不知道如何在没有substring()功能的情况下获得id的数字部分。我认为exists是更正确的解决方案。谢谢。
发布于 2012-02-11 10:17:03
由于你的问题并不完全清楚你在问什么,我将给你提供一些不同的例子:
对于单个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())
})这将为id以"old-“开头的所有对象创建一个jQuery对象,然后用"new”替换"old“以创建目标id值,并使用该值将HTML从源复制到目标。
如果在名为elem的变量中有一个给定的对象,并且只想提取id值的数值部分,则可以使用正则表达式来匹配数值部分,如下所示:
var matches = elem.id.match(/\d+$/);
if (matches) {
var numString = matches[0];
}发布于 2012-02-11 10:28:42
我相信您希望在事先不知道的情况下检索一个id ,这样您就可以复制该元素的文本。
如果这是正确的,这个简短的jQuery函数就会这样做。
$('span').each(function()
{
var idnum = $(this).attr('id').match(/[\d]/);
$('#new-' + idnum).text($(this).text());
}
);我已经创建了a jsfiddle来演示。
发布于 2012-02-11 10:50:10
如果您希望将所有old-n跨度的内容复制到相应的new-n跨度,则应执行以下操作:
$('span[id^="old-"]').each(function() {
$('#new-' + this.id.split('-')[1]).html( $(this).html() );
});演示:http://jsfiddle.net/nnnnnn/bcXFf/
(通常我会使用.substr()来完成此操作,因为您已经知道了数字在字符串中的位置,但是由于您要求避免这样做,所以我使用了.split()。)
^=是"attribute starts with" selector,所以上面的代码选择所有id以“^=-”开头的跨度,然后为每个跨度找到相应的"new-“跨度,并将内容复制到其中。
https://stackoverflow.com/questions/9237253
复制相似问题