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

vla*_*lad 3 jquery

我如何从带有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>
Run Code Online (Sandbox Code Playgroud)

我不知道如何在id没有substring()功能的情况下获得数字部分.我认为存在是更正确的解决方案.谢谢.

jfr*_*d00 8

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

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

$("#new-1").text($("#old-1").text());
Run Code Online (Sandbox Code Playgroud)

如果您有一堆要执行此操作的顺序ID,则可以执行以下操作:

for (var i = 1; i <= 5; i++) {
    $("#new-" + i).text($("#old-" + i).text());
}
Run Code Online (Sandbox Code Playgroud)

如果它是HTML,而不仅仅是文本,您可以使用.html()代替上面代码中的.text().

$("#new-1").html($("#old-1").html());
Run Code Online (Sandbox Code Playgroud)

要么

for (var i = 1; i <= 5; i++) {
    $("#new-" + i).html($("#old-" + i).html());
}
Run Code Online (Sandbox Code Playgroud)

如果要查找ID为"old-"的所有对象,并处理所有这些对象,无论它们上面有多少和哪些数字,您都可以这样做:

$('[id^="old-"]').each(function() {
    var newid = this.id.replace(/old/, "new");
    $("#" + newid).html($(this).html())
})
Run Code Online (Sandbox Code Playgroud)

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

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

var matches = elem.id.match(/\d+$/);
if (matches) {
    var numString = matches[0];
}
Run Code Online (Sandbox Code Playgroud)