gcogco10 Ответов: 2

Как сделать идентификатор селекторов jquery уникальным в ваших атрибутах HTML-тегов?


Привет Команда

Я изо всех сил пытаюсь найти способ в Jquery selectors ID unique, в основном хочу получить доступ к одному конкретному идентификатору моей кнопки, чтобы работать через все мои флажки. Есть ли способ сделать это в Jquery? Я не хочу, чтобы мой флажок загружался до того, как один пользователь выберет его, то есть то, что код делает в данный момент. формат файла правильный, это просто способ сделать этот идентификатор уникальным во всех моих чекбоксах для кнопки, чтобы увидеть их, кажется, его невозможно достичь.

Что я уже пробовал:

div class = "custom-control custom-checkbox">
  <input type="checkbox" class ="custom-control-input" id="temperature">
    <label class = "custom-control-label" for="temperature">Temperature</label>
    </div>
    
 <div class = "custom-control custom-checkbox">
 <input type = "checkbox" class="custom-control-input" id="illuminance">
   <label class = "custom-control-label" for = "illuminance">Illuminance</label>
  </div>   
 <div class ="custom-control custom-checkbox">
 <input type ="checkbox" class="custom-control-input" id="button-state">
   <label class ="custom-control-label" for = "button-state">Button-State</label>
    

<pre lang="HTML"><!---Downloading File using 
Jquery with Buttons---->
  <div class="form-group"><br>
  <div class="col-md-1.9 text-center">
   <button id="download" name="download" class="btn btn-warning" >Download</button><br>
    </div> 
  </div> 

 // checking for one field entry to read.
   $(document).ready(function() {
   $('#temperature').click(function() {
            var xcount = 0;
            if($('.temperature').prop('checked')) xcount--;
            if(xcount < 1) {
            window.location.href ='https://api.thingspeak.com/channels/899906/fields/1.csv';
            }
          });
  });
  
  // checking for two field entry to read.
  $(document).ready(function() {
    $('#download').click(function() {
      var ncount = 0;
      if($('.illuminance').prop('checked')) ncount--;
      if(ncount < 1) {
        window.location.href ='https://api.thingspeak.com/channels/899906/fields/2.csv';
      }
    });
  
  });
  
  // checking for third entry to read.
   $(document).ready(function() {
    $('#download').click(function() {
    var qcount = 0;
    if($('.button-state').prop('checked')) qcount--;
      if(qcount < 1) {
       window.location.href ='https://api.thingspeak.com/channels/899906/fields/8.csv';
      }
    });
  
  });

Herman&lt;T&gt;.Instance

Я не вижу "температуры" в вашем HTML-коде

gcogco10


Температура

Afzaal Ahmad Zeeshan

Он имеет в виду, что ваш HTML-код не содержит элемента с идентификатором temperature- Вы уверены, что это полный код?

2 Ответов

Рейтинг:
2

Herman&lt;T&gt;.Instance

$('#temperature')

измените его на
$("[id*=temperature]")


gcogco10

Я все еще не понимаю этого правильно, но если я использую этот оператор. что означает, что я указываю на все элементы ID во всем моем документе?

Herman&lt;T&gt;.Instance

Видеть: Google searchresult здесь

Рейтинг:
0

Richard Deeming

Вы путаетесь между идентификаторами и классами.

  • $("#foo") выбирает элемент с помощью id="foo";
  • $(".foo") выбирает элемент с помощью class="foo";

Итак, ваш селектор $('.temperature') не будет соответствовать никаким элементам, потому что нет никаких элементов с этим классом CSS. Вы должны использовать $('#temperature') вместо этого, как и в предыдущей строке.

Но даже тогда неясно, чего вы пытаетесь достичь. Вы начинаете с переменной, установленной в 0; если флажок установлен, вы уменьшаете эту переменную, делая ее -1; затем, если переменная меньше, чем 1, вы выполняете какое-то действие. Но переменная будет всегда быть меньше, чем 1!

И установка window.location.href это почти наверняка остановит запуск любых других скриптов на текущей странице, поэтому будет загружен только один файл.

Может быть, вы хотите что-то подобное?
$(function(){
    $("#download").click(function(e){
        e.preventDefault();
        
        if ($('#temperature').is(':checked')){
            window.open('https://api.thingspeak.com/channels/899906/fields/1.csv');
        }
        if ($('#illuminance').is(':checked')){
            window.open('https://api.thingspeak.com/channels/899906/fields/2.csv');
        }
        if ($('#button-state').is(':checked')){
            window.open('https://api.thingspeak.com/channels/899906/fields/8.csv');
        }
    });
});


gcogco10

Спасибо, приятель, он работает в соответствии с тем, чего я хотел достичь

gcogco10

Как вы проверяете, есть ли выбранная комбинация того и другого? например, если один выбран, а другой нет, и наоборот.

Richard Deeming

Не совсем понимаю, что ты имеешь в виду?

var temperatureIsChecked = $('#temperature').is(':checked');
var illuminanceIsChecked = $('#illuminance').is(':checked');
var buttonStateIsChecked = $('#button-state').is(':checked');
if (temperatureIsChecked && illuminanceIsChecked && buttonStateIsChecked) {
    // All three are checked
}
// etc.