$('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
?
Короткий ответ: вам не нужно использовать тип элемента перед 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, чтобы сделать два элемента одинаковыми. Это причина, по которой они имеют одно и то же имя класса.
предположим, что у вас есть несколько разных тегов с одинаковым классом, и вы хотите, чтобы только тег "a", имеющий class="check", щелкнул, тогда вызывается только ваша функция, чтобы добиться этого, вам нужно написать $ ("a.check").click(function() {}); выполнение выполняется быстрее.
Хотя идентификаторы уникальны для каждого элемента на одной странице, но ваш вопрос заключался в том, что
зачем добавлять имя тега перед селектором 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')
Эти два селектора отличаются друг от друга, и вы можете выполнять различные операции таким образом.