зачем добавлять имя тега перед селектором идентификатора в JQuery?

0
$('a#actionLifeEnforcement').click(function() {
        if(!validateSelectedRightsType()){
            return false;
        };
        if ($("input:checkbox:checked").length == 1) {
            $("input:checkbox:checked").each(function() {
            $('<input>').attr({
                type: 'hidden',
                id: 'id',
                name: 'id',
                value:  $(this).val()
                }).appendTo('form#formLifeEnforcement');
            });
            $('#formLifeEnforcement').submit();
            }else {//....   }
            return false;
    });

Я не понимаю в приведенном выше коде, в селекторе jquery, зачем нужно добавлять имя тега перед идентификатором? как a#actionLifeEnforcement и form#formLifeEnforcement?

  • 0
    Нет нужды.....
  • 0
    Вам не нужно добавлять имя тега с помощью селектора идентификаторов (если они уникальны на странице)
Показать ещё 7 комментариев
Теги:
selector

3 ответа

3
Лучший ответ

Короткий ответ: вам не нужно использовать тип элемента перед id или именем class в селекторе.

Долгий ответ: вам никогда не придется использовать имя элемента перед селектором id, потому что id всегда должен быть уникальным для каждой страницы. Единственная причина, по которой вам когда-либо хотелось бы указать тип элемента перед id - это то, что вы хотели бы отметить, к какому типу элемента вы имеете дело.

Однако, когда дело доходит до классов, вы наверняка можете оказаться в ситуации, когда хотите иметь один элемент из многих элементов с тем же именем класса, который имеет определенное поведение, а другие нет. Примером этого может быть что-то вроде этого.

<script type="text/javascript">
 $('a.button').click(function( ){ 
     alert("I'm a link that looks like a button!"); 
     return false;
 });
 $('input.button').click(function( ){ 
     alert("I'm an input that looks like a button!"); 
     return false;
 });
</script>

<a href="#" class="button">Link</a>
<input type="submit" name="button" value="Submit Button" />

В заключение: вы правы в вопросе селекторов с типом элемента, который добавляет id.

Надеюсь, это прояснит ситуацию.

Примечание. В моем примере подразумевается некоторый CSS, чтобы сделать два элемента одинаковыми. Это причина, по которой они имеют одно и то же имя класса.

  • 0
    очень подробно, проясни мое замешательство. большое спасибо
0

предположим, что у вас есть несколько разных тегов с одинаковым классом, и вы хотите, чтобы только тег "a", имеющий class="check", щелкнул, тогда вызывается только ваша функция, чтобы добиться этого, вам нужно написать $ ("a.check").click(function() {}); выполнение выполняется быстрее.

  • 1
    Идентификаторы в документе должны быть уникальными независимо от типа тега элемента, поэтому у вас никогда не должно быть разных тегов с одинаковым идентификатором, поскольку ваш документ будет недействительным.
0

Хотя идентификаторы уникальны для каждого элемента на одной странице, но ваш вопрос заключался в том, что

зачем добавлять имя тега перед селектором id?

Простой ответ: нет необходимости делать это с помощью селекторов id:

$('a#actionLifeEnforcement')

Вышеприведенный селектор выбирает только привязку с определенным идентификатором, но в случае селекторов классов, которые были бы очень значительными.

Но в случае имен классов предположим:

у вас есть два разных тега с одинаковыми именами классов:

<a class='myclass'>dummy link</a> // an anchor with classname "myclass"
<div class='myclass'>dummy text</div> // a div with classname "myclass"

поэтому теперь в js:

$('.myclass')

Вышеприведенный селектор выбирает оба элемента из-за одинаковых имен классов, но:

$('a.myclass')
$('div.myclass')

Эти два селектора отличаются друг от друга, и вы можете выполнять различные операции таким образом.

Скрипт с теми же именами классов с разными тегами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню