Reputation: 7291
I have the following text in a var-
<option value="1">A</option><option value="2">2</option><option value="3">3</option>
<option value="4">4</option>
Is there any way to remove any ... block from that by its value? i.e. I would like to remove ... where its value is 3. Please note that, above text is in a variable.
I know that i can remove option value from a select as follows:
$("#selectBox option[value='option1']").remove();
Any suggestion?
Upvotes: 0
Views: 175
Reputation: 3221
Using RegEx:
var num = 3;
var pattern = new RegExp('<option value="'+num+'">.+?<\/option>', 'i');
var options = '<option value="1">A</option><option value="2">2</option><option value="3">3</option><option value="4">4</option>';
options = options.replace(pattern, '');
console.log(options);
Upvotes: 0
Reputation: 85558
You could use the .not()
function :
var html='<option value="1">A</option><option value="2">2</option><option value="3">3</option><option value="4">4</option>';
html=$(html).not('[value="3"]');
console.log(html);
html
is now
<option value="1">A</option>
<option value="2">2</option>
<option value="4">4</option>
Upvotes: 1
Reputation: 133423
Try this
var el =$('<select></select>').append('<option value="1">A</option><option value="2">2</option><option value="3">3</option><option value="4">4</option>')
el.find("option[value='3']").remove();
$('div').append(el)
Upvotes: 1
Reputation: 454
You could use the jQuery filter function. http://api.jquery.com/filter/ This should give you more control of the data you want to process.
Upvotes: 1