jQuery에서 버튼의 텍스트를 변경하는 방법은 무엇입니까?


548

jQuery에서 버튼의 텍스트 값을 어떻게 변경합니까? 현재 내 버튼에는 텍스트 값으로 '추가'가 있으며 클릭하면 '저장'으로 변경하고 싶습니다. 아래 에서이 방법을 시도했지만 지금까지 성공하지 못했습니다.

$("#btnAddProfile").attr('value', 'Save');

3
실제로 예제는 버튼의 값을 변경하는 데 효과적입니다. 나는 그것을 시도했고 효과가 있었다. 아마도 버튼의 ID가 다르거 나 오타 일 수도 있습니다.
mjspier

여전히 작동하지 않습니다 ... JQuery UI 스타일이 이것을 일으킬 수 있습니까?
user517406

4
Sergey의 답변이 가장 좋았습니다. 스타일, 패딩 및 여백을 제거하지 않고 jquery 버튼에서 올바르게 작동합니다.
AaA

이것을 사용하십시오 $ ( "# btnAddProfile"). prop ( 'value', 'Save');
PHP 개발자

답변:


898

사용중인 버튼 유형에 따라

<input type='button' value='Add' id='btnAddProfile'>
$("#btnAddProfile").attr('value', 'Save'); //versions older than 1.6

<input type='button' value='Add' id='btnAddProfile'>
$("#btnAddProfile").prop('value', 'Save'); //versions newer than 1.6

<!-- Different button types-->

<button id='btnAddProfile' type='button'>Add</button>
$("#btnAddProfile").html('Save');

버튼은 링크 일 수도 있습니다. 당신은 좀 더 구체적인 대답을 일부 HTML을 게시해야합니다.

편집 : .click()물론 전화에 싸서 가정하면 작동합니다.

편집 2 : 최신 jQuery 버전 (> 1.6 이상) .prop대신.attr

편집 3 : jQuery UI를 사용 하는 경우 텍스트 속성을 조정하는 DaveUK의 방법 ( 아래 ) 을 사용해야 합니다


7
.html ( 'Save')을 사용하여 작동했는데 버튼에 runat = server를 설정 한 것을 알지 못했습니다. 이것이 문제의 원인이었습니다.
user517406

이 작업을 수행하고 jquery ui 버튼을 축소하지 않는 방법은 무엇입니까?
Sevenearths

2
걱정하지 마십시오. 텍스트를 엉망으로 만드는 대신 에서 buttoninput변경하고 아이콘을 둥글게 변경했습니다. (내가 의도 한 것이 아니라고 생각한다)
Sevenearths

8
경우에 따라 스타일을 엉망으로 만들 수 있다면 가능한 한 이것을 줄였습니다. 이 문제가 발생하면 DaveUK의 답변을 사용하십시오 . 추신 : 그것은 또한 Sevenearths가 주목 한 것 같아요
user562529

3
더 나은 : jQuery와 미래 보장을 올바르게 사용하려면 아래의 Sergey 답변을 사용하십시오. $ ( ".selector") .button ( "option", "label", "new text");
cincodenada

148

jQuery에서 .Button ()으로 만든 버튼의 경우 ......

다른 답변은 텍스트를 변경하지만 버튼의 스타일을 엉망으로 만들지 만 jQuery 버튼이 렌더링 될 때 버튼의 텍스트는 범위 내에 중첩되어 있습니다.

<button id="thebutton">
  <span class="ui-button-text">My Text</span>
</button>

범위를 제거하고 다른 예제에서와 같이 범위를 텍스트로 바꾸면 범위와 관련 서식이 느슨해집니다.

따라서 실제로 버튼이 아니라 SPAN 태그 내에서 텍스트를 변경해야합니다!

$("#thebutton span").text("My NEW Text");

또는 (나와 같은 경우 클릭 이벤트가 완료된 경우)

$("span", this).text("My NEW Text");

4
이 DOM 구조가 절대 바뀌지 않을 것이라고 기 대해서는 안됩니다. jQuery-UI가 레이블을 변경하는 방법을 사용하는 것이 훨씬 좋습니다 (Sergey의 답변 참조).
Mike DeSimone

80

JQuery를 사용하여 "단추 화"된 경우 단추 텍스트를 변경하는 올바른 방법은 .button () 메서드를 사용하는 것입니다.

$( ".selector" ).button( "option", "label", "new text" );

3
이것은 버튼의 스타일링 (특히 버튼의 크기)을 밟은 다른 접근법보다 나에게 더 효과적이었습니다. jQuery UI 대화 상자에서 FWIW 버튼을 사용하고있었습니다.
Dave Crumbacher

8
이것은 대화 상자의 버튼과 같이 jQuery로 만든 버튼에 대한 정답입니다. 다른 모든 것들은 jQuery 스타일링 중 일부를 파괴합니다. 이것은 또한 jQuery가 생성하는 HTML 구조에 의존하지 않고 수행합니다.
cincodenada

이것은이 질문에 대한 정답입니다 (질문은 Jquery UI 버튼에 관한 질문 인 것 같습니다. 댓글 참조), 승진해야합니다.
peveuve

38

버튼의 텍스트를 변경하려면 다음 jQuery 행을 실행하십시오.

<input type='button' value='XYZ' id='btnAddProfile'>

사용하다

$("#btnAddProfile").val('Save');

동안

<button id='btnAddProfile'>XYZ</button>

이것을 사용하십시오

$("#btnAddProfile").html('Save');


또한 jquery로 eg를 사용하여 만든 버튼의 $('#thing').append($("<button />")....)경우 .html을 사용하여 텍스트를 설정해야합니다.
Benubird


22

당신은해야합니다 .button("refresh")

HTML :

<button id='btnviewdetails' type='button'>SET</button>

JS :

$('#btnviewdetails').text('Save').button("refresh");

어떤 이유로 든 버튼을 새로 고치기 위해 코드를 사용한 후에 만 ​​작동하지만 버튼을 새로 고친 후에 버튼의 아이콘 (JQuery Mobile CSS의 일부)이 사라지는 것을 알았습니다 (솔루션이 가장 가깝습니다) 알았습니다).
Ciaran Gallagher

12

버튼을 버튼으로 누른 경우 작동하는 것 같습니다.

<button id="button">First caption</button>

$('#button').button();//make it nice
var text="new caption";
$('#button').children().first().html(text);


10

다음과 같은 것을 사용할 수 있습니다.

$('#your-button').text('New Value');

다음과 같은 속성을 추가 할 수도 있습니다.

$(this).text('New Value').attr('disabled', true).addClass('bt-hud').unbind('click');

입력 버튼이나 제출 버튼이 작동하지 않습니다. val ()을 사용하십시오.
ActiveX

8

당신이 사용할 수있는

$("#btnAddProfile").text('Save');

이기는 하지만

$("#btnAddProfile").html('Save');

잘 작동하지만 오해의 소지가 있습니다.

$("#btnAddProfile").html('Save <b>now</b>');

그러나 물론 당신은 할 수 없습니다



5
$("#btnAddProfile").click(function(){
    $("#btnAddProfile").attr('value', 'Save');
 });

10
질문에서 작동하지 않는 코드를 반복하는 것은 대답이 아닙니다.
Benubird

4

그것은 나를 위해 일한다 HTML :

<button type="button" class="btn btn-primary" id="btnSaveSchedule">abc</button>

js

$("#btnSaveSchedule").text("new value");

4

$(document).ready(function(){
    $(":button").click(function(){
        $("p").toggle();

    if (this.value=="Add") this.value = "Save";
    else this.value = "Add";

  });
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>

<input type='button' value='Add' id='btnAddProfile'>

<p>This is a paragraph with little content.</p>
<p>This is another small paragraph.</p>

</body>
</html>


2

버튼 대신 ID 대신 수업을 주었습니까? 다음 코드를 시도하십시오

$(".btnSave").attr('value', 'Save');

1
$("#btnviewdetails").click(function(){
    if($(this).val()!="hide details"){
        $("#detailedoutput").show();
        $(this).val('hide details');
    }else{
        $("#detailedoutput").hide();
        $(this).val('view more details');
    }

});

답변에 대한 세부 사항을 포함하십시오.
Starx

답변에 세부 정보를 포함하십시오. 나는 당신이 여기서 무엇을하려고하는지 전혀 모른다.
Anurag

1

트릭을 수행해야합니다.

$("#btnAddProfile").prop('value', 'Save');       
$("#btnAddProfile").button('refresh');


0

정확히 맞습니다. 이것은 저에게 효과적입니다.

    $('#btnAddProfile').bind('click',function(){
    $(this).attr('value','save');
})

Jquery를 사용할 수 있고 코드가 올바른 위치에 있습니까?



0

C #에서 버튼 에티켓 이름 변경

<button type="submit" name="add" id="btnUpdate" class="btn btn-primary" runat="server" onserverclick="btnUpdate_Click">
Add

btnUpdate.**InnerText** = "Update";
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.