Próbuję owinąć mój script placehollx. Wszystko, co muszę zrobić, to dostać "px" z końca ciągu zwróconego z tego połączenia.

$(form).children('.inputSpan').each(function() {
   var $input = $(this)
   var $padding = $input.children('.input').css('padding-left');
});

To zwraca "6px". Chcę wyciąć 6 px i upewnić się, że jest to liczb całkowity, więc mogę następnie dodać 2 piksele do niego i nakarmić go do reguły CSS. Jestem nowością manipulacjami w JavaScript. Pomóż mi!

4
Throttlehead 13 listopad 2011, 07:17

3 odpowiedzi

Najlepsza odpowiedź

Możesz użyć podstawowej funkcji Wymień JavaScript (), parseint () lub parseFloat (), aby usunąć "px" z wyniku. Która metoda używasz, zależy od tego, czego potrzebujesz.

Poniżej znajduje się skrócona wersja kodu za pomocą Parse Wymień (), aby usunąć "PX".

$(form).children('.inputSpan').each(function() {
   var padding = $(this).children('.input').css('padding-left').replace("px", "");
});

W powyższym kodzie "16px" powróci "16". "16.7px" wróci "16.7px". "16EM" powróci "16em".


Poniżej znajduje się skrócona wersja kodu za pomocą Parse Parseint (), aby usunąć "px" i więcej.

$(form).children('.inputSpan').each(function() {
   var padding = parseInt($(this).children('.input').css('padding-left'));
});

W powyższym kodzie "16px" powróci "16". "16.7px" powróci "16". "16EM" powróci "16". W przeciwieństwie do pierwszej wymiany () przykładu, to usunie dowolny tekst, a nie tylko "px".


Poniżej znajduje się skrócona wersja swojego kodu za pomocą Parse Parsedouble (), aby usunąć "px" i więcej.

$(form).children('.inputSpan').each(function() {
   var padding = parseDouble($(this).children('.input').css('padding-left'));
});

W powyższym kodzie "16px" powróci "16". "16.7px" powróci "16.7". "16EM" powróci "16". W przeciwieństwie do Parseint (), to utrzymuje dziesiętne, jeśli masz je z jakiegoś powodu.


Oczywiście, możesz zachować długość kodu, jeśli istnieje powód, aby zobaczyć podzielone kroki podjęte w celu wykorzystania w przyszłości lub jeśli pozostałe zmienne są wykorzystywane z innych powodów. Jest to długa wersja za pomocą parseint ().

$(form).children('.inputSpan').each(function() {
    var $input = $(this)
    var padding = $input.children('.input').css('padding-left');
    var paddingInt = parseInt(padding);
});

Również wyjaśnić zmianę nazwy zmiennej od $ wyściółki do wyściółki. A $ Symbol przed zmienną JavaScript jest powszechnym wykorzystaniem, aby odróżnić regularne zmienne JavaScript z zmiennych JQuery, ponieważ mają różne właściwości. Nie ma powodu, aby użyć $ wyściółki, ponieważ .CSS () nie zwraca obiektu jQuery, ale raczej prosty ciąg.

Ponadto, aby uzyskać bardziej skomplikowane wyszukiwania, możesz zbadać wyrażenia regularne.

12
andrewh 13 listopad 2011, 03:44
function size(value){
    return( parseInt( value.replace('px','') ,10) ); 
}

Użyj funkcji w następujący sposób:

size("32px"); // Returns 32 as an integer
3
Alex 13 listopad 2011, 14:08
$(form).children('.inputSpan').each(function() {
   var $input = $(this)
   var $padding = $input.children('.input').css('padding-left');

   $padding = $padding.substring(0, $padding.Length - 2);
});
0
Jason 13 listopad 2011, 03:20