Home > Blockchain >  get the variable $i from counter in text
get the variable $i from counter in text

Time:04-06

I just don't know how to make this work.

I got this Javascript

$(".email").on("keyup change", function() {
if ($(this).val().match(/@gmail/i)){
$(".groupa").show();    
$(".groupb").hide();

I have a variable i from a counter

and i want it next to text from email and divs, but I'm trying and trying with no success

$(".email i ").on("keyup change", function() {
if ($(this).val().match(/@gmail/i)){
$(".groupa i ").show();    
$(".groupb i ").hide();

I want it to be the email form a , , , etc.

what can I do here?

Ive tried

$(".email" i)
$(".email"{i})
$(".email" i )

my complete html with css, and js

I bassicaly add rows, and then I want to filter gmail and show some options. The css is just and example I want to add more

css:

.groupa0, .groupb0, .groupa1, .groupa1, .groupa2, .groupb2, 
.groupa3, .groupb3{
 display: none;

html:

<table id="usertable">
<tr>
<td><b>User email: </b></td>
<td><b>User Options:</b></td>
</tr>
<tr>
<td><input  type="email" 
 name="useremail[]" required /></td>
  <td>
<select  name="youchoose[]" required>
<option value=""></option>
<optgroup hidden  label="Group A">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
</optgroup>
<optgroup hidden  label="Group B">
<option value="option4">option4</option>
<option value="option5">option5</option>
</optgroup>
</select>  
</td>
</tr>
</table>  

js:

<script>

 var i = 1;
 $("#addbutton").click(function () {
 $("#usertable").append('<tr>' 
 '<td><input  type="email" 
 name="useremail[]" required /></td>' 
 '<td>' 
  '<select  name="role[]" required>' 
   '<option value=""></option>' 
   '<optgroup Class="groupa' i '" label="Internal Roles">' 
      '    <option value="option1">option1</option>' 
      '    <option value="option2">option2</option>' 
      '    <option value="option3">option3</option>' 
      '</optgroup>' 
    '<optgroup hidden  label="Group B">' 
      '<option value="option4">option4</option>' 
      '<option value="option5">option5</option>' 
      '</optgroup>' 
    '</select>'   
  '</td>' 
 '<td><button type="button"  title="Remove this 
 row">X</button></td></tr>').find("input").each(function () {
 });
 i  ;
 });;

 $(document).on('click', 'button.removebutton', function () {
 $(this).closest('tr').remove();
 return false;
 });

 </script>

<script>
$(".email").on("keyup change", function() {
if ($(this).val().match(/@gmail)){
$(".groupa").show();    
$(".groupb").hide();
} else {
$(".groupa")).hide();
$(".groupb").show();
}
});
</script>

CodePudding user response:

//using string concatenation
for(let i = 1; i <= 3; i  )
{
    $('.email'   i).on("keyup change", function() {
    if ($(this).val().match(/@gmail/i)){
        $('.groupa'   i).show();    
        $('.groupb'   i).hide();
    }
}

//using string interpolation (Template literal)
for(let i = 1; i <= 3; i  )
{
    $(`.email${i}`).on("keyup change", function() {
    if ($(this).val().match(/@gmail/i)){
        $(`.groupa${i}`).show();    
        $(`.groupa${i}`).hide();
    }
}

  • Related