React Native кнопки очень ограничены в опции, которую они предоставляют. Вы можете использовать TouchableHighlight или TouchableOpacity путем стилизации этого элемента и обертывания его кнопками с ним, как это
Вы также можете использовать библиотеку реакции для настраиваемая кнопка. Одна хорошая библиотека - это реакция-на-собственная кнопка ( https://www.npmjs.com/package/react-native-button )
((пожалуйста, обновите, если это необходимо, этот ответ - Wiki))
.text()
или .html()
? Ответ: .html()
быстрее! См. здесь «тест-набор поведения» для всего вопроса .
Итак, в заключение, если у вас есть «только текст», используйте метод html()
.
Примечание: Не имеет смысла? Помните, что функция .html()
является только оболочкой для .innerHTML
, но в функции .text()
jQuery добавляет «фильтр сущности» , и этот фильтр естественно потребляет время.
Хорошо, если вам действительно нужна производительность ... Используйте чистый Javascript для доступа к прямой текстовой замене с помощью свойства nodeValue
. Выводы:
.html()
~ 2x быстрее, чем .text()
. .innerHTML
~ ~ 3 раза быстрее, чем .html()
. .nodeValue
~ 50x быстрее, чем .html()
, ~ 100x, чем .text()
и ~ 20x, чем .innerHTML
. PS: .textContent
было введено с DOM-Level-3, .nodeValue
является DOM-Level-2 и быстрее (!).
См. этот полный тест :
// Using jQuery:
simplecron.restart(); for (var i=1; i<3000; i++)
$("#work").html('BENCHMARK WORK');
var ht = simplecron.duration();
simplecron.restart(); for (var i=1; i<3000; i++)
$("#work").text('BENCHMARK WORK');
alert("JQuery (3000x): \nhtml="+ht+"\ntext="+simplecron.duration());
// Using pure JavaScript only:
simplecron.restart(); for (var i=1; i<3000; i++)
document.getElementById('work').innerHTML = 'BENCHMARK WORK';
ht = simplecron.duration();
simplecron.restart(); for (var i=1; i<3000; i++)
document.getElementById('work').nodeValue = 'BENCHMARK WORK';
alert("Pure JS (3000x):\ninnerHTML="+ht+"\nnodeValue="+simplecron.duration());
Используйте .text (...), когда вы намереваетесь отображать это значение как простой текст.
Используйте .html (...), когда вы собираетесь отображать значение в виде текста в формате HTML (или содержимого HTML) ).
Вы обязательно должны использовать .text (...), когда не уверены, что ваш текст (например, входящий из элемента управления вводом) не содержит символов / тегов, которые имеют особое значение в HTML. Это действительно важно, потому что это может привести к тому, что текст не будет отображаться должным образом, но это также может привести к тому, что будет активирован нежелательный фрагмент сценария JS (например, исходящий от другого пользовательского ввода).
Первый пример фактически будет внедрять HTML внутри div
, тогда как второй пример выйдет из текста, заменив связанные с элементом символы соответствующими символами символов , чтобы он отображался буквально (т. е. HTML будет отображаться не отображается).
.text()
все <
будут заменены на <
. Таким образом, с .html()
браузер увидит ссылку и полужирный текст, с .text()
браузер увидит все как текст и не сделает ссылку или полужирный текст.
– Mottie
15 December 2009 в 23:25
Я считаю, что разница заключается в том, чтобы вставить html-тег в text()
, вы не используете html-тег
$('#output').html('You are registered'+'<br>' +' '
+ 'Mister'+' ' + name+' ' + sourname ); }
:
You are registered <br> Mister name sourname
, заменив text()
на html()
output
You are registered
Mister name sourname
, тогда тег <br>
работает в html()
Сущность метода text()
- исключает любой HTML-код, который передается в него. Используйте text()
, если вы хотите вставить HTML-код, который будет отображаться для людей, просматривающих страницу.
Технически ваш второй пример производит:
<a href="example.html">Link</a><b>hello</b>
, который будет отображаться в браузере как:
<a href="example.html">Link</a><b>hello</b>
Ваш первый пример будет отображаться как фактическая ссылка и некоторый жирный текст.
$ ('. div'). html (val) будет устанавливать значения HTML для всех выбранных элементов, $ ('. div'). text (val) установит текстовые значения всех выбранных элементов.
Я бы предположил, что они соответствуют Node # textContent и Element # innerHTML соответственно. (Ссылки Gecko DOM).
текстовая функция задана или получает значение в виде обычного текста, в противном случае функция HTML задает или извлекает значение в виде HTML-тегов для изменения или изменения этого. Если вы хотите просто изменить содержимое, используйте текст (). Но если вам нужно изменить разметку, вы должны использовать hmtl ().
Это фиктивный ответ для меня после шести лет, не против.
Хорошо в простой перспективе.
html () - получить внутренний html (html-теги и текст).
text () - получить только текст, если он присутствует внутри (только текст)
Странно, что никто не упомянул преимущество предотвращения перекрестных ссылок для .text()
по сравнению с .html()
(Хотя другие только что упоминали, что .text()
избегает данных).
Всегда рекомендуется использовать .text()
, когда вы хотите обновлять данные в DOM, которые являются только данными / текстом для просмотра пользователем.
.html()
в основном используется для получения содержимого HTML в div.
Фактически оба выглядят несколько схожими, но сильно отличаются от вашего использования или намерения, чего вы хотите достичь,
.html()
для работы с контейнерами с элементами html. .text()
для изменения текста элементов, обычно имеющих отдельные открытые и закрывающие теги .text()
не может использоваться для ввода или сценариев формы. .val()
для элементов ввода или textarea. .html()
для значения элемента скрипта. .text()
преобразует html-теги в html-объекты. .text()
может использоваться как в XML, так и в HTML-документах. .html()
предназначен только для html-документов. Проверьте этот пример на jsfiddle, чтобы увидеть различия в действие
В принципе, $ ("# div"). html использует element.innerHTML для установки содержимого и $ ("# div"). text (возможно) использует element.textContent.
http://docs.jquery.com/Attributes/html :
Set the html contents of every matched element
http://docs.jquery.com/Attributes/text :
Similar to html(), but escapes HTML (replace "<" and ">" with their HTML
entities).
Я думаю, что разница почти не требует объяснений.
jQuery.html()
рассматривает строку как HTML, jQuery.text()
рассматривает содержимое как текст
<html>
<head>
<title>Test Page</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#div1").html('<a href="example.html">Link</a><b>hello</b>');
$("#div2").text('<a href="example.html">Link</a><b>hello</b>');
});
</script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
$(function() {
$("#div1").html('<a href="example.html">Link</a><b>hello</b>');
$("#div2").text('<a href="example.html">Link</a><b>hello</b>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<div id="div1"></div>
<div id="div2"></div>
html()
и text()
- не лучшими методами безопасности - слишком широка - однако я отметил ваш комментарий в моей голове для будущая справка, если я когда-либо обнаруживаю, что соскабливаю контент от чего-то, не созданного мной
– aequalsb
14 October 2017 в 12:53
nodeValue
, оно преобразует & quot; & gt; & quot; в & quot; & quot; & quot ;, & quot; и т.д. – Peter Krauss 31 August 2015 в 20:09.text()
кажется ~ 7x быстрее, чем.html()
). Исходный код: codepen.io/damhonglinh/pen/vGpQEO . Я тестировал 1500 элементов;.html()
занял ~ 220 мс, а.text()
занял ~ 30 мс. – Linh Dam 8 April 2016 в 18:19