How do I populate the index number of a option value list with cheerio?
hi guys i am trying to get the index number of a list from a website using cheerio. for example the index number for "40 - only one left" is 2.
how would i go about getting the number 2 by having only '40' to match (without only one left)?
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
javascript node.js cheerio
add a comment |
hi guys i am trying to get the index number of a list from a website using cheerio. for example the index number for "40 - only one left" is 2.
how would i go about getting the number 2 by having only '40' to match (without only one left)?
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
javascript node.js cheerio
add a comment |
hi guys i am trying to get the index number of a list from a website using cheerio. for example the index number for "40 - only one left" is 2.
how would i go about getting the number 2 by having only '40' to match (without only one left)?
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
javascript node.js cheerio
hi guys i am trying to get the index number of a list from a website using cheerio. for example the index number for "40 - only one left" is 2.
how would i go about getting the number 2 by having only '40' to match (without only one left)?
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
javascript node.js cheerio
javascript node.js cheerio
edited Jan 1 at 22:31
ibrahim mahrir
22.2k41951
22.2k41951
asked Jan 1 at 22:27
Cheeky LanccCheeky Lancc
43
43
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You can first select the <option>
by text using the cheerio/jQuery selector :contains
(the text could be anything), then call the function index
to get its index inside its parent:
var index = $("option:contains('40')").index();
Note: The function index
returns a 0-indexed result that starts from 0, if you want 1-indexed result, then simply add 1 to it.
Demo (using jQuery, which cheerio is based on):
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
add a comment |
You can try something like this:
function getindex(searchValue) {
// you probably want to have a class for them OR pass an array of options
// to this function, because your html might have options in other places
const inner = document.body.getElementsByTagName('option');
for (let i = 0; i < inner.length; i++) {
if (inner[i].innerHTML.includes(searchValue)) return i;
}
return 'no match'
}
// remember that indexing starts at 0,
// thus option 'Select Size' - is the first one with the index 0
// and `40` - is the index 1
getindex('40'); // returns index 1
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53999431%2fhow-do-i-populate-the-index-number-of-a-option-value-list-with-cheerio%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can first select the <option>
by text using the cheerio/jQuery selector :contains
(the text could be anything), then call the function index
to get its index inside its parent:
var index = $("option:contains('40')").index();
Note: The function index
returns a 0-indexed result that starts from 0, if you want 1-indexed result, then simply add 1 to it.
Demo (using jQuery, which cheerio is based on):
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
add a comment |
You can first select the <option>
by text using the cheerio/jQuery selector :contains
(the text could be anything), then call the function index
to get its index inside its parent:
var index = $("option:contains('40')").index();
Note: The function index
returns a 0-indexed result that starts from 0, if you want 1-indexed result, then simply add 1 to it.
Demo (using jQuery, which cheerio is based on):
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
add a comment |
You can first select the <option>
by text using the cheerio/jQuery selector :contains
(the text could be anything), then call the function index
to get its index inside its parent:
var index = $("option:contains('40')").index();
Note: The function index
returns a 0-indexed result that starts from 0, if you want 1-indexed result, then simply add 1 to it.
Demo (using jQuery, which cheerio is based on):
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
You can first select the <option>
by text using the cheerio/jQuery selector :contains
(the text could be anything), then call the function index
to get its index inside its parent:
var index = $("option:contains('40')").index();
Note: The function index
returns a 0-indexed result that starts from 0, if you want 1-indexed result, then simply add 1 to it.
Demo (using jQuery, which cheerio is based on):
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
var index = $("option:contains('40')").index();
console.log(index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">Select Size</option>
<option value="2970"> 40 - only one left</option>
<option value="2973"> 41 - only one left</option>
<option value="2976"> 42 - only one left</option>
</select>
edited Jan 1 at 22:44
answered Jan 1 at 22:39
ibrahim mahriribrahim mahrir
22.2k41951
22.2k41951
add a comment |
add a comment |
You can try something like this:
function getindex(searchValue) {
// you probably want to have a class for them OR pass an array of options
// to this function, because your html might have options in other places
const inner = document.body.getElementsByTagName('option');
for (let i = 0; i < inner.length; i++) {
if (inner[i].innerHTML.includes(searchValue)) return i;
}
return 'no match'
}
// remember that indexing starts at 0,
// thus option 'Select Size' - is the first one with the index 0
// and `40` - is the index 1
getindex('40'); // returns index 1
add a comment |
You can try something like this:
function getindex(searchValue) {
// you probably want to have a class for them OR pass an array of options
// to this function, because your html might have options in other places
const inner = document.body.getElementsByTagName('option');
for (let i = 0; i < inner.length; i++) {
if (inner[i].innerHTML.includes(searchValue)) return i;
}
return 'no match'
}
// remember that indexing starts at 0,
// thus option 'Select Size' - is the first one with the index 0
// and `40` - is the index 1
getindex('40'); // returns index 1
add a comment |
You can try something like this:
function getindex(searchValue) {
// you probably want to have a class for them OR pass an array of options
// to this function, because your html might have options in other places
const inner = document.body.getElementsByTagName('option');
for (let i = 0; i < inner.length; i++) {
if (inner[i].innerHTML.includes(searchValue)) return i;
}
return 'no match'
}
// remember that indexing starts at 0,
// thus option 'Select Size' - is the first one with the index 0
// and `40` - is the index 1
getindex('40'); // returns index 1
You can try something like this:
function getindex(searchValue) {
// you probably want to have a class for them OR pass an array of options
// to this function, because your html might have options in other places
const inner = document.body.getElementsByTagName('option');
for (let i = 0; i < inner.length; i++) {
if (inner[i].innerHTML.includes(searchValue)) return i;
}
return 'no match'
}
// remember that indexing starts at 0,
// thus option 'Select Size' - is the first one with the index 0
// and `40` - is the index 1
getindex('40'); // returns index 1
answered Jan 1 at 22:56


UmaUma
37615
37615
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53999431%2fhow-do-i-populate-the-index-number-of-a-option-value-list-with-cheerio%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown