2012-10-17 18 views
9

Rozumiem, że jquery pozwala modyfikować atrybuty za pomocą metody .attr(). Istnieją dwie metody:Ustawianie atrybutu boolowskiego z jquery

$('#element').attr('attribute', 'value') // sets the attribute 
var attribute = $('#element').attr('attribute') // gets the attribute 

Moje pytanie brzmi, jak można ustawić atrybut logiczną takich jak „sprawdzone” na checkbox lub „wielokrotności” na wybranej zmiennej?

Próbowałem następujący sposób bez powodzenia:

$('#element').attr('attribute', true) 
$('#element').attr('attribute', '') 

Wszystkie te dodać atrybut ale zazwyczaj jak ten <tag attribute="attribute">.

Odpowiedz

13

Spróbuj użyć .prop do czynienia z boolean który jest dla obsługiwanych atrybutów jak selected/disabled/checked itp

$('#element').prop('attribute', true); 

z docs jQuery (przykład)

elem.checked powraca true (Boolean) zmieni się ze stanu checkbox

$(elem).prop("checked") zwraca true (boolean) Zostanie zmieniony z użyciem pola wyboru

elem.getAttribute("checked") zwraca "checked" (String) Początkowy stan pola wyboru; nie zmienia

$(elem).attr("checked")(1.6) zwraca "checked" (String) Początkowy stan pola wyboru; nie zmienia

$(elem).attr("checked")(1.6.1+) powraca "checked" (String) zmieni się ze stanu checkbox

$(elem).attr("checked")(pre-1.6) powraca true (Boolean) zmieniło stan wyboru

-1

atrybutów HTML są zawsze ciąg wartości. Jeśli rzeczywiście chcesz ustawić coś innego niż ciąg znaków, rozważ użycie jQuery.data()

+1

Nieprawdziwe w HTML5: http://dev.w3.org/html5/spec/common-microsyntaxes.html#boolean -posiada –

+0

Masz rację, nie powinienem był zakładać, że ... przepraszam –

Powiązane problemy