Попробуйте этот код:
var d = "matter";
(d||"").split("a"); //array: ["m","tter"]
var a = false;
(a||"").split("a"); //empty string
var c = true;
(c||"").split("a"); //type error
the ||выражение - логическая проверка.Если левое значение истинно (приведено к логическому значению), то всегда возвращается с левым, но если ложно, возвращается с правым.
"left"|| false == "left"
"left"||"right" == "left"
false||"right" == "right"
, если d
равно логическое ложное будет возвращено со значением ""
, а затем без ошибок, но если d
- логическое значение true (логическое значение true - это все, что не является логическим значением false) , но не строкаэто может быть TypeError
.Убедитесь, что d
преобразован в строку с .toString()
true.split("r")
будет ошибкой типа, поэтому вы должны использовать true.toString().split("r")
, и это даст вам ["t","ue"]
Так что в общей форме (d||"").toString().split("r")
никогда не будет ошибки типа
update
О, я вижу вашу проблему.Я мог бы помочь вам лучше, если вы предоставите какой-то источник.Кстати, убедитесь, что вы передаете правильный тип аргумента в вызываемую функцию.Я не знаю, какую функцию вы используете, но я уверен, что вы передаете что-то логическое или число вместо строки, и я думаю, что проблема в .css () не так ли?
http://api.jquery.com/ документацияjquery