programing

jQuery: .attr(); 메서드를 통해 두 개의 속성 추가

starjava 2023. 8. 30. 21:03
반응형

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(Don'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" } );

편집 - 확인란에서 '체크 표시된' 특성을 가져오거나 설정하려는 경우...

다음을 사용해야 합니다.prop() jQuery 1.6+ 기준

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

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

따라서 확인란의 상태를 확인하려면 다음을 사용해야 합니다.

$('#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"},
];

언급URL : https://stackoverflow.com/questions/13014317/jquery-adding-two-attributes-via-the-attr-method

반응형