728x90
반응형
https://devlogofchris.tistory.com/58
동적으로 생성한 selectbox를 조건에 따라 selected 속성을 주는 요소를 변경시키는 이벤트를 주어야 했는데,
적용이 처음 로딩시에만 되고 작동을 하지 않아서 구글링을 해보니
jQuery 1.6이후부터 .attr() 함수가 용도에 따라 attr()과 .prop()으로 분리된다고 되어있었다.
.attr()
- html 의 속성 ( attribute )를 다룬다.
.prop()
- javascript 프로퍼티 ( property )를 다룬다.
.attr()로 적용하던것을 prop()으로 바꾸니 정상적으로 동작이 되었다.
내가 괄호안의 내용을 ('selected', 'true')로 하였는데, true는 property를 변경하는 것이여서 attr이 동작하지
않았던 것이었다.
.attr()로 할거면 .attr('selected', 'selected')로 해야한다.
selected="selected"라는 attribute를 추가할 때
➡️ .attr('selected', 'selected'); 또는 .prop('selected', true);
checked="checked"라는 attribute를 제거할 때
➡️ .removeAttr('selected'); 또는 .prop('selected', false);
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[js][datatables] columns.adjust() (0) | 2022.06.02 |
---|---|
[jQuery] .trigger('click') 과 .on('click') (0) | 2022.05.31 |
[JS] 여러개의 값 리턴하기 (0) | 2022.05.27 |
[jQuery] [error]동적으로 selectbox selected옵션 추가할 때 에러 (0) | 2022.05.26 |
[jQuery] .forEach() , .each() 반복문 (0) | 2022.05.25 |