Я пытаюсь это:Условные операторы значений CSS с помощью JQuery
if($("#img").css("left")>=100)
, но он всегда возвращает ложь, потому что $("#img").css("left")
возвращает "200px"
в виде строки.
Я пытаюсь это:Условные операторы значений CSS с помощью JQuery
if($("#img").css("left")>=100)
, но он всегда возвращает ложь, потому что $("#img").css("left")
возвращает "200px"
в виде строки.
parseInt
будет преобразовать строку в целое число для вас:
if(parseInt($("#img").css("left"), 10)>=100)
временное решение, чтобы использовать эту функцию, которая возвращает значение атрибута CSS, исключая "px"
:
function getCSSval(str){
return parseInt(str.substring(0, str.length - 2));
//e.g. "200px" --> "200"
}
Но я надеялся, что может быть более прямой путь
Вам нужно разобрать возвращаемое значение в целое число, чтобы сравнить его с 100
:
if (parseInt($("#img").css("left"), 10) >= 100)
Наиболее эффективный код, чтобы получить целую часть является использование regular expressions
if(parseInt($("#img").css("left").replace(/\s?px/i, "")) >= 100)
В случае, если кто задавался вопросом, то второй параметр должен определить, какая система счисления использовать в это кейс основа 10 цифры. –
@MohamedKhamis Правильно. Не уверен, что '$ (« # img »). Css (« left »)' всегда будет возвращать префиксные числа, но лучше безопасно, чем извините :) – CodingIntrigue
@RGraham лучше вы добавляете объяснение. В любом случае я уже +1 это –