最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - Jquery, getting back list of ID strings of all elements with ID's that "begin with" a str

matteradmin20PV0评论

I'm not a Javascript guru as I do more server-side work so am struggling with this. I have found bits and pieces of how to do this. Basically, I have a series of elements that have ids beginning with the string "tagRow_" and I need to get back a list of all of the actual element ids as I need not just the element but also the element's id as I need to parse the unique ending for each on the server-side to determine what it corresponds to.

I found the code below to get all elements but am not sure what it is returning as far as a list or what, if anyone can offer advice how to return just a list of string id names I would appreciate it. Thanks

EDIT: I actually need to do this with a radio input field, it was by mistake I put a DIV in my own example. It works fine for a DIV but is not working properly for a radio input like below:

 <input id="tagRow_ddd" type="radio" value="h">
                <input id="tagRow_ddd" type="radio" value="p">
                    <input id="tagRow_ddd" type="radio" value="r">
                    <input id="tagRow_ddd" type="radio" value="c">

$("input[id^='tagRow_']").each(function() {

   var id = this.id,
       idNumber = id.replace(/\D+/, '');
   document.body.innerHTML += idNumber + '<br />';
});

/

I'm not a Javascript guru as I do more server-side work so am struggling with this. I have found bits and pieces of how to do this. Basically, I have a series of elements that have ids beginning with the string "tagRow_" and I need to get back a list of all of the actual element ids as I need not just the element but also the element's id as I need to parse the unique ending for each on the server-side to determine what it corresponds to.

I found the code below to get all elements but am not sure what it is returning as far as a list or what, if anyone can offer advice how to return just a list of string id names I would appreciate it. Thanks

EDIT: I actually need to do this with a radio input field, it was by mistake I put a DIV in my own example. It works fine for a DIV but is not working properly for a radio input like below:

 <input id="tagRow_ddd" type="radio" value="h">
                <input id="tagRow_ddd" type="radio" value="p">
                    <input id="tagRow_ddd" type="radio" value="r">
                    <input id="tagRow_ddd" type="radio" value="c">

$("input[id^='tagRow_']").each(function() {

   var id = this.id,
       idNumber = id.replace(/\D+/, '');
   document.body.innerHTML += idNumber + '<br />';
});

http://jsfiddle.net/fD7fP/3/

Share Improve this question edited Mar 17, 2011 at 5:40 Rick asked Mar 17, 2011 at 2:25 RickRick 17k35 gold badges113 silver badges163 bronze badges
Add a comment  | 

5 Answers 5

Reset to default 22

Try the following:

var ids = $("div[id^='tagRow_']").map(function() {
    return this.id;
}).get();

This returns an array of all the IDs. More information from this post: Use jQuery to extract data from HTML lists and tables.

Live Demo

var elements = [];

$("div[id^='tagRow_']").each(function(){
   elements.push(this.id); 
});

var stringOfElementIDs = elements.toString();
$("div[id^=tagRow_]").each()....

example:

$("div[id^='tagRow_']").each(function() {    
    alert(this.id);
});

You can get the number on the client side too.

$("div[id^='tagRow_']").each(function() {

   var id = this.id,
       idNumber = id.replace(/\D+/, '');

   // idNumber contains the digits that were in the id

});

jsFiddle.

That will return a list of matching DOM elements (as jQuery objects). So you will have to loop through it and put the ids in a separate array.

var matching_els = $("div[id^='tagRow_']"), ids = [];
for(var i=0; i<matching_els.length; i++){
  ids.push(matching_els[i].attr("id");
}
// send ids back to server
Post a comment

comment list (0)

  1. No comments so far