[jquery] jQuery : .attr ()을 통해 두 개의 속성 추가 방법

편집하다:

이외의 다른 값을 사용 _blank하면 모바일 브라우저에서 새 창 / 탭을 열지 않습니다.

예를 들어 새 창 / 탭을 열어야하는 경우 :

  • 이것은 모든 브라우저, 심지어 모바일 브라우저에서 작동 합니다 : target="_blank".

  • 이 작동하지 않는 모바일 브라우저,하지만 작동합니까 데스크톱 브라우저에서을 : target="new".

이 방법이 작동하지만 더 나은 방법이 있는지 또는 내가 얻은 방법이 올바른 / 유일한 방법인지 확실하지 않습니다.

기본적으로 내가하는 일은 모든 target="_new"또는 target="_blank"속성 값을 로 바꾸는 것입니다. target="nw"이렇게하면 하나의 새 창이 열리고 그 안에 여러 개의 창으로 사용자를 압도하지 않도록 다른 모든 새 창이 열립니다.

새 창에서 열기title=""속성 도 추가 합니다.

그래서 내가 만든 솔루션은 다음과 같습니다.

$("a[target='_blank'], a[target='_new']").attr('target','nw').attr('title','Opens in a new window');

두 가지 .attr();방법에 주목하십시오 .

이것이 요소에 두 개의 속성을 추가하는 올바른 방법입니까?

시도 .attr('target','nw','title','Opens in a new window')했지만 작동하지 않았습니다.

제가 묻는 이유는 DYR (Do n’t Repeat Yourself) 원칙 때문입니다. 그래서 제가 가지고있는 코드를 개선 할 수 있다면 훌륭합니다. 그렇지 않다면 그것은 그 자체입니다.

감사.



답변

작동해야합니다 :

.attr({
    target:"nw",
    title:"Opens in a new window",
    "data-value":"internal link" // attributes which contain dash(-) should be covered in quotes.
});

참고 :

여러 속성을 설정할 때 속성 이름을 따옴표로 묶는 것은 선택 사항입니다.

경고 : ‘class’속성을 설정할 때 항상 따옴표를 사용해야합니다!

.attr에 대한 jQuery 문서 (2016 년 9 월)에서 :

document.createElement ()를 통해 생성 된 입력 또는 버튼 요소의 유형 속성을 변경하려고하면 Internet Explorer 8 이상에서 예외가 발생합니다.

편집 :
향후 참조를 위해 … 사용 하는 단일 속성 을 얻으 려면

var strAttribute = $(".something").attr("title");

단일 속성 을 설정 하려면

$(".something").attr("title","Test");

여러 속성 을 설정 하려면 모든 것을 {…}로 래핑해야합니다.

$(".something").attr( { title:"Test", alt:"Test2" } );

편집-확인란에서 ‘선택됨’속성을 가져 오거나 설정하려는 경우 …

jQuery 1.6 이상 부터 사용해야합니다.prop()

.prop () 메서드는 속성 값을 명시 적으로 검색하는 방법을 제공하는 반면 .attr ()은 속성을 검색합니다.

… checked 속성에 대해 기억해야 할 가장 중요한 개념은 checked 속성과 일치하지 않는다는 것입니다. 속성은 실제로 defaultChecked 속성에 해당하며 확인란의 초기 값을 설정하는 데만 사용해야합니다. 확인 된 속성 값은 확인란의 상태에 따라 변경되지 않지만 확인 된 속성은 변경됩니다.

따라서 체크 박스의 상태확인 하려면 다음을 사용해야합니다.

$('#checkbox1').prop('checked'); // Returns true/false

또는 확인란을 선택 또는 선택 취소로 설정하려면 다음을 사용해야합니다.

$('#checkbox1').prop('checked', true); // To check it
$('#checkbox1').prop('checked', false); // To uncheck it


답변

적절한 방법은 다음과 같습니다.

.attr({target:'nw', title:'Opens in a new window'})


답변

앵커 태그에 부트 스트랩 속성을 동적으로 추가하면 이보다 많은 도움이됩니다.

 $(".dropdown a").attr({
      class: "dropdown-toggle",
     'data-toggle': "dropdown",
      role: "button",
     'aria-haspopup': "true",
     'aria-expanded': "true"
});


답변

이 같은:

$(myObj).attr({"data-test-1": num1, "data-test-2": num2});


답변

중괄호를 사용하고 추가하려는 모든 속성을 안에 넣으십시오.

예:

$('#objId').attr({
    target: 'nw',
    title: 'Opens in a new window'
});


답변

Multiple Attribute

var tag = "tag name";
createNode(tag, target, attribute);

createNode: function(tag, target, attribute){
    var tag = jQuery("<" + tag + ">");
    jQuery.each(attribute, function(i,v){
        tag.attr(v);
    });
    target.append(tag);
    tag.appendTo(target);
}
var attribute = [
    {"data-level": "3"},
];


답변