var filterHome = homes.filter(home =>
return (home.price <= 999 &&
home.num_of_baths >= 2.5 &&
home.num_of_beds >=2 &&
home.sqft >= 998));
console.log(filterHome);
Вы можете использовать эту лямбда-функцию. Более подробную информацию можно найти здесь, поскольку мы фильтруем данные на основе вашего условия, которое возвращает true или false, и оно будет собирать данные в разных массивах, чтобы ваш фактический массив не был изменен.
@JGreig Пожалуйста, изучите его.
Для HTML 4 ответ технически:
Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]) и могут быть за которым следует любое количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_»), двоеточия («:») и периоды («.»).
< / blockquote>HTML 5 еще более разрешительный, говоря только, что идентификатор должен содержать хотя бы один символ и может не содержать пробельных символов.
Атрибут id чувствительный к регистру в XHTML .
Как чисто практический вопрос, вы можете избежать определенных символов. Периоды, двоеточия и «#» имеют особое значение в селекторах CSS, поэтому вам придется избегать этих символов, используя обратную косу в CSS или двойную обратную косую черту в селекторе , переданном jQuery . Подумайте, как часто вам придется избегать символа в ваших таблицах стилей или кода, прежде чем вы сходите с ума по периодам и двоеточиям в ids.
Например, допустимо объявление HTML
<div id="first.name"></div>
. Вы можете выбрать этот элемент в CSS как#first\.name
и в jQuery, например:$('#first\\.name').
. Но если вы забудете обратную косую черту,$('#first.name')
, у вас будет совершенно правильный селектор, который ищет элемент с idfirst
, а также имеющий классname
. Это ошибка, которую легко упустить. В долгосрочной перспективе вы можете быть более счастливы, выбрав вместо этого idfirst-name
(дефис, а не период).Вы можете упростить свои задачи разработки, строго придерживаясь соглашения об именах. Например, если вы полностью ограничиваете символы нижнего регистра и всегда разделяете слова с помощью дефисов или подчеркиваний (но не на обоих, выберите один и никогда не используйте другой), тогда у вас есть простой для запоминания шаблон. Вы никогда не будете удивляться: «Было ли это
firstName
илиFirstName
?» потому что вы всегда будете знать, что вы должны ввестиfirst_name
. Предпочитаете верблюд? Тогда ограничьте себя этим, не дефисами или подчеркиваниями, и всегда, последовательно используйте либо верхний регистр, либо нижний регистр для первого символа, не смешивайте их.
Теперь очень неясная проблема заключалось в том, что хотя бы один браузер Netscape 6, неправильно обрабатывал значения атрибута id как чувствительные к регистру . Это означало, что если бы вы набрали
id="firstName"
в своем HTML (нижний регистр «f») и#FirstName { color: red }
в вашем CSS (верхний регистр «F»), этот багги-браузер не смог бы установить цвет элемента в красный , Во время этого редактирования, апрель 2015 года, я надеюсь, вас не попросят поддержать Netscape 6. Рассмотрим эту историческую сноску.
jQuery обрабатывает любое допустимое имя ID. Вам просто нужно избежать метасимволов (т. Е. Точек, точек с запятой, квадратных скобок ...). Это похоже на то, что JavaScript имеет проблему с кавычками только потому, что вы не можете писать
var name = 'O'Hara';
Чтобы ссылаться на id с периодом в нем, вам нужно использовать обратную косую черту. Не уверен, что это то же самое для дефиса или подчеркивания. Например: HTML
<div id="maintenance.instrumentNumber">############0218</div>
CSS
#maintenance\.instrumentNumber{word-wrap:break-word;}
\--abc
) или цифра (например, \-123
).
– MrWhite
14 November 2013 в 03:25
Дефисы, подчеркивания, периоды, двоеточия, числа и буквы действительны для использования с CSS и JQuery. Следующее должно работать, но оно должно быть уникальным на всей странице, а также должно начинаться с буквы [A-Za-z].
Работа с двоеточиями и периодами требует немного больше работы, но вы можете сделать это как показан следующий пример.
<html>
<head>
<title>Cake</title>
<style type="text/css">
#i\.Really\.Like\.Cake {
color: green;
}
#i\:Really\:Like\:Cake {
color: blue;
}
</style>
</head>
<body>
<div id="i.Really.Like.Cake">Cake</div>
<div id="testResultPeriod"></div>
<div id="i:Really:Like:Cake">Cake</div>
<div id="testResultColon"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var testPeriod = $("#i\\.Really\\.Like\\.Cake");
$("#testResultPeriod").html("found " + testPeriod.length + " result.");
var testColon = $("#i\\:Really\\:Like\\:Cake");
$("#testResultColon").html("found " + testColon.length + " result.");
});
</script>
</body>
</html>
для HTML5
Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ. Значение не должно содержать пробелов.
blockquote>По крайней мере один символ, пробелы.
Это открывает дверь для допустимых вариантов использования, таких как использование акцентированных символов. Это также дает нам больше боеприпасов, чтобы стрелять в ногу, поскольку теперь вы можете использовать значения id, которые могут вызвать проблемы с CSS и JavaScript, если вы не будете очень осторожны.
Похоже, что хотя двоеточие (:) и периоды (.) действительны в спецификации HTML, они являются недопустимыми в качестве селекторов id в CSS , поэтому, вероятно, лучше всего избегать, если вы намереваетесь использовать их для этого цель.
Вы можете технически использовать двоеточия и периоды в атрибутах id / name, но я настоятельно рекомендую избегать обоих.
В CSS (и нескольких библиотеках JavaScript, таких как jQuery), как период, так и двоеточие имеют специальные и вы столкнетесь с проблемами, если не будете осторожны. Периоды - это селектор классов, а двоеточия - псевдоселекторы (например, «: hover» для элемента, когда мышь над ним).
Если вы укажете элементу id «my.cool:thing», , ваш CSS-селектор будет выглядеть так:
#my.cool:thing { ... /* some rules */ ... }
Что действительно говорит: «Элемент с идентификатором« мой », класс« классный »и псевдо-селектор« вещь », в CSS-говорить.
Придерживаться AZ любого случая, цифр, подчеркиваний и дефис. И, как сказано выше, убедитесь, что ваши идентификаторы уникальны.
Это должно быть вашей первой заботой.
.
, :
) в ids и не могут их удалить (cough ... Sharepoint), вы можете обойти это в CSS с помощью селекторов атрибутов вместо селекторов идентификаторов, например. [id='my.cool:thing']
, однако этот селектор будет иметь более низкую специфичность, чем селектор id, что может вызвать другие проблемы.
– Faust
7 June 2013 в 08:36
Как и в случае с HTML5, единственными ограничениями на значение идентификатора являются:
. Аналогичные правила применяются к классам (за исключением уникальности, конечно).
So значение может быть все цифры, всего одна цифра, только знаки пунктуации, включают специальные символы, что угодно. Просто нет пробелов. Это очень отличается от HTML4.
В HTML 4 значения идентификатора должны начинаться с буквы, которая затем может следовать только буквами, цифрами, дефисами, символами подчеркивания, двоеточиями и периодами.
В HTML5 они действительны:
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>
Просто имейте в виду, что использование чисел, знаков препинания или специальных символов в значении идентификатора может вызвать проблемы в других контекстах (например, CSS, JavaScript, регулярное выражение ).
Например, в HTML5 допустим следующий идентификатор:
<div id="9lions"> ... </div>
Однако это недействительно в CSS:
Из спецификации CSS2.1:
В CSS, идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [a-zA-Z0-9] и символы ISO 10646 U + 00A0 и выше, плюс дефис (-) и подчеркивание (_); они не могут начинаться с цифры, двух дефисов или дефиса, за которым следует цифра .
В большинстве случаев вы можете избежать символов в контекстах, где они имеют ограничения или особое значение.
Ссылки W3C
HTML5
Атрибут
id
указывает уникальный идентификатор его элемента (ID).Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ. Значение не должно содержать пробелов.
Примечание. Нет никаких других ограничений на то, какую форму может принимать идентификатор; в частности, идентификаторы могут состоять из простых цифр, начинаться с цифры, начинаться с подчеркивания, состоять только из знаков пунктуации и т. д.
Атрибут, если он указан, должен иметь значение, которое представляет собой набор разделенных пространством токенов, представляющих различные классы, к которым принадлежит этот элемент.
Классы, которым присвоен элемент HTML к нему относятся все классы, возвращаемые, когда значение атрибута класса разбивается на пробелы. (Дубликаты игнорируются.)
Нет никаких дополнительных ограничений на то, что авторы токенов могут использовать в атрибуте class, но авторам рекомендуется использовать значения, которые описывают природу контента, а не значения, которые описывают желаемое представление содержимого.
Строго он должен соответствовать
[A-Za-z][-A-Za-z0-9_:.]*
Но у jquery, похоже, проблемы с двоеточиями, поэтому лучше избегать их.
На практике многие сайты используют атрибуты id
, начиная с цифр, даже если это технически недействительный HTML.
проект спецификации HTML 5 ослабляет правила для id
и name
: теперь они просто непрозрачные строки, которые не могут содержать пробелы.
Из спецификации HTML 4 :
Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), и за ней может следовать любая количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_»), двоеточия («:») и периоды («.»).
Общей ошибкой является использование идентификатора, начинающегося с цифры.
Кроме того, никогда не забывайте, что идентификатор уникален. После использования значение ID больше не может появляться в любом месте документа.
У вас может быть много идентификаторов, но все они должны иметь уникальное значение.
С другой стороны, существует элемент класса. Подобно ID, он может появляться много раз, но значение может использоваться снова и снова.
В HTML5 идентификатор не может начинаться с числа, например. id- "1kid"
, и они не могут иметь пробелы (id = "Some kind"
)
Имея в виду, что идентификатор должен быть уникальным, т.е. в документе не должно быть нескольких элементов с одинаковым значением id.
Правила содержимого ID в HTML5 (кроме уникальности):
This attribute's value must not contain white spaces. [...]
Though this restriction has been lifted in HTML 5,
an ID should start with a letter for compatibility.
Это Спецификация W3 о ID (frnn MDN):
Any string, with the following restrictions:
must be at least one character long
must not contain any space characters
Previous versions of HTML placed greater restrictions on the content of ID values
(for example, they did not permit ID values to begin with a number).
id
) id
) alphabets-> caps & amp; small digits-> 0-9 special chars-> ':', '-', '_', '.'
формат должен начинаться с '.' или алфавит, за которым следует либо специальный символ большего количества алфавитов, либо цифр. значение поля id не должно заканчиваться на '_'. Кроме того, пробелы не допускаются, если они предоставляются, они рассматриваются как разные значения, что недействительно в случае атрибутов id.
Из спецификации HTML 4 ...
Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0 -9]), дефисы («-»), подчеркивания («_»), двоеточия («:») и периоды («.»).
EDIT: d'oh! Снова побегите к кнопке!
Любое альфа-числовое значение и «-» и «_» действительны. Но вы должны завести имя id любым символом между A-Z или a-z.
Уникальный идентификатор для элемента.
В документе не должно быть нескольких элементов с одинаковым значением id.
Любая строка со следующими ограничениями:
Использование символов, кроме ASCII letters and digits, '_', '-' and '.'
, может вызвать проблемы совместимости, поскольку они не разрешены в HTML 4
. Хотя это ограничение было снято в HTML 5
, идентификатор должен начинаться с буквы для совместимости.
избавляется от дополнительных ограничений атрибута id , см. здесь . Единственные требования, оставленные (кроме единственного в документе):
Идентификатор должен соответствовать:
[A-Za-z][-A-Za-z0-9_:.]*
-
(дефис), _
(подчеркивание), :
(двоеточие) и .
(период) , но следует избегать :
и .
beacause:
Например, идентификатор может быть помечен как «ab: c» и указан в таблице стилей как #ab: c, но также как и это id для элемента, это может означать id «a», класс «b», псевдоселектор «c». Лучше избегать путаницы и избегать использования. и: вообще.
# : . * !
символы <base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.
Нет пробелов, должно начинаться, по крайней мере, с символа от a до z и от 0 до 9.
id
- [ w3.org/TR/html4/struct/global.html#adef-id] (случай , чувствительный в HTML4) и должен начинаться с буквы (ограниченной от A до Z). Также обратите внимание, что ваш пример не должен делать цвет текста вашего элемента красным, поскольку ваш CSS ссылается на элемент с классомFirstName
не на вашid
. – Augustus Kling 30 September 2011 в 08:55id="firstName"
в HTML 4 или HTML 5 и#FirstName { color: red }
в CSS, только багги-браузер будет i> установить цвет элемента в красный. – Stephen Booher 26 January 2012 в 19:15