首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jQuery获取id元素的一部分?

如何使用jQuery获取id元素的一部分?
EN

Stack Overflow用户
提问于 2012-02-11 10:15:06
回答 7查看 8.8K关注 0票数 3

我怎样才能从span中用id="old-id“获取”一些文本“,并把它放到id="new-id”中呢?

代码语言:javascript
复制
<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是更正确的解决方案。谢谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-02-11 10:17:03

由于你的问题并不完全清楚你在问什么,我将给你提供一些不同的例子:

对于单个id,您可以这样做:

代码语言:javascript
复制
$("#new-1").text($("#old-1").text());

如果您有一堆想要执行此操作的连续ID,您可以这样做:

代码语言:javascript
复制
for (var i = 1; i <= 5; i++) {
    $("#new-" + i).text($("#old-" + i).text());
}

如果它是HTML语言,而不仅仅是文本,那么可以在上面的代码中使用.html()来代替.text()。

代码语言:javascript
复制
$("#new-1").html($("#old-1").html());

代码语言:javascript
复制
for (var i = 1; i <= 5; i++) {
    $("#new-" + i).html($("#old-" + i).html());
}

如果您想要查找ID以"old-“开头的所有对象,并处理所有对象,而不管其上有多少个数字,您可以这样做:

代码语言:javascript
复制
$('[id^="old-"]').each(function() {
    var newid = this.id.replace(/old/, "new");
    $("#" + newid).html($(this).html())
})

这将为id以"old-“开头的所有对象创建一个jQuery对象,然后用"new”替换"old“以创建目标id值,并使用该值将HTML从源复制到目标。

如果在名为elem的变量中有一个给定的对象,并且只想提取id值的数值部分,则可以使用正则表达式来匹配数值部分,如下所示:

代码语言:javascript
复制
var matches = elem.id.match(/\d+$/);
if (matches) {
    var numString = matches[0];
}
票数 8
EN

Stack Overflow用户

发布于 2012-02-11 10:28:42

我相信您希望在事先不知道的情况下检索一个id ,这样您就可以复制该元素的文本。

如果这是正确的,这个简短的jQuery函数就会这样做。

代码语言:javascript
复制
$('span').each(function()
    {
        var idnum = $(this).attr('id').match(/[\d]/);
        $('#new-' + idnum).text($(this).text());
    }
);

我已经创建了a jsfiddle来演示。

票数 4
EN

Stack Overflow用户

发布于 2012-02-11 10:50:10

如果您希望将所有old-n跨度的内容复制到相应的new-n跨度,则应执行以下操作:

代码语言:javascript
复制
$('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-“跨度,并将内容复制到其中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9237253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档