উত্তর:
আমি মনে করি পার্থক্যটি প্রায় স্ব-বর্ণনামূলক। এবং এটি পরীক্ষা করা অত্যন্ত তুচ্ছ।
jQuery.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>
একটি পার্থক্য যা এতটা সুস্পষ্ট নাও হতে পারে jQuery API ডকুমেন্টেশনে বর্ণিত
.Html () এর জন্য ডকুমেন্টেশনে :
.html()
পদ্ধতি XML দস্তাবেজগুলিতে উপলব্ধ নেই।
এবং টেক্সট () এর জন্য ডকুমেন্টেশনে :
.html()
পদ্ধতির বিপরীতে ,.text()
এক্সএমএল এবং এইচটিএমএল উভয় দস্তাবেজগুলিতে ব্যবহার করা যেতে পারে।
$(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>
((দয়া করে আপডেট হলে আপডেট করুন, এই উত্তরটি উইকি))
.text()
বা .html()
?উত্তর: .html()
দ্রুত! দেখুন এখানে সব প্রশ্নের জন্য একটি "আচরণ পরীক্ষা কিট" ।
সুতরাং, উপসংহারে, আপনার যদি "কেবল একটি পাঠ্য" থাকে তবে html()
পদ্ধতিটি ব্যবহার করুন ।
দ্রষ্টব্য: কোন মানে নেই? মনে রাখবেন যে .html()
ফাংশনটি কেবল একটি মোড়কের জন্য .innerHTML
রয়েছে তবে .text()
ফাংশনে jQuery একটি "সত্তা ফিল্টার" যুক্ত করে এবং এই ফিল্টারটি স্বাভাবিকভাবেই সময় নেয়।
ঠিক আছে, আপনি যদি সত্যিই পারফরম্যান্স চান ... সম্পত্তি দ্বারা সরাসরি পাঠ্য-প্রতিস্থাপন অ্যাক্সেস করতে খাঁটি জাভাস্ক্রিপ্ট ব্যবহার করুনnodeValue
। বেঞ্চমার্ক উপসংহার:
.html()
তুলনায় 2x ডলার দ্রুত .text()
।.innerHTML
তুলনায় ~ 3x দ্রুত .html()
।.nodeValue
তুলনায় ~ 50x দ্রুত, এর চেয়ে .html()
~ 100x .text()
এবং 20x ডলার .innerHTML
।PS: .textContent
সম্পত্তিটি ডিওএম-লেভেল -3 এর সাথে প্রবর্তিত হয়েছিল, .nodeValue
এটি ডিওএম-স্তর -২ এবং দ্রুত (!) Is
দেখুন এটি সম্পূর্ণ বেঞ্চমার্ক :
// 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());
nodeValue
সম্পত্তি সেট করেন , এটি ">" কে "& lt;" ইত্যাদিতে রূপান্তরিত করে
.text()
~ 7x এর চেয়ে দ্রুত বলে মনে হয় .html()
)। উত্স কোড: codepen.io/damhonglinh/pen/vGpQEO । আমি 1500 উপাদান দিয়ে পরীক্ষা করেছি; .html()
20 220ms .text()
নিয়েছে এবং 30 ডলার নিয়েছে।
প্রথম উদাহরণটি এইচটিএমএলকে প্রকৃতপক্ষে এম্বেড করবে div
যেখানে দ্বিতীয় উদাহরণটি উপাদান সম্পর্কিত অক্ষরগুলিকে তাদের সংশ্লিষ্ট চরিত্র সত্তার সাথে প্রতিস্থাপনের মাধ্যমে পাঠ্যটি থেকে পালিয়ে যাবে যাতে এটি অক্ষরে অক্ষরে প্রদর্শিত হয় (অর্থাত্ এইচটিএমএল প্রদর্শিত হবে না)।
.text()
ফাংশনে, <
সমস্তটি প্রতিস্থাপন করা হবে <
। সুতরাং .html()
ব্রাউজারটি একটি লিঙ্ক এবং কিছু সাহসী পাঠ্য .text()
দেখতে পাবে, ব্রাউজারের সাথে সমস্ত কিছু পাঠ্য হিসাবে দেখবে এবং কোনও লিঙ্ক বা সাহসী পাঠ্য তৈরি করবে না।
text()
পদ্ধতি কোনো HTML এটি মধ্যে পাস করা হয়েছে সত্তা-পালাতে। text()
আপনি যখন এইচটিএমএল কোড সন্নিবেশ করতে চান তখন পৃষ্ঠাটি যে সমস্ত লোকের কাছে দৃশ্যমান হবে তা ব্যবহার করুন ।
প্রযুক্তিগতভাবে, আপনার দ্বিতীয় উদাহরণ উত্পাদন করে:
<a href="example.html">Link</a><b>hello</b>
যা ব্রাউজারে রেন্ডার হবে:
<a href="example.html">Link</a><b>hello</b>
আপনার প্রথম উদাহরণটি একটি আসল লিঙ্ক এবং কিছু সাহসী পাঠ্য হিসাবে রেন্ডার হবে।
আসলে উভয়ই কিছুটা দেখতে দেখতে কিছুটা একই তবে এটি আপনার ব্যবহার বা উদ্দেশ্য আপনি কী অর্জন করতে চান তার উপর নির্ভর করে,
.html()
HTML উপাদানগুলি থাকার পাত্রে উপর কার্যকরী হিসেবে।.text()
সাধারণত পৃথক ওপেন এবং ক্লোজিং ট্যাগ থাকা উপাদানগুলির পাঠ্যকে সংশোধন করতে ব্যবহার করুন.text()
ফর্ম ইনপুট বা স্ক্রিপ্টগুলিতে পদ্ধতি ব্যবহার করা যায় না।
.val()
ইনপুট বা টেক্সারি উপাদানগুলির জন্য।.html()
একটি স্ক্রিপ্ট উপাদান মান জন্য।এইচটিএমএল সামগ্রীগুলি বাছাই করা এইচটিএমএল .text()
ট্যাগগুলিকে এইচটিএমএল সত্তায় রূপান্তরিত করবে।
.text()
এক্সএমএল এবং এইচটিএমএল উভয় দস্তাবেজগুলিতে ব্যবহার করা যেতে পারে।.html()
শুধুমাত্র এইচটিএমএল নথির জন্য।কর্মের পার্থক্যগুলি দেখতে jsfiddle এ এই উদাহরণটি দেখুন
স্ট্রেঞ্জ কেউ ক্রস সাইট স্ক্রিপ্টিং প্রতিরোধ সুবিধা উল্লেখ করেন যে, .text()
ওভার .html()
(যদিও শুধু অন্যদের উল্লেখ করেছি যে .text()
তথ্য পালাতে)।
এটা সবসময় ব্যবহারের সুপারিশ করা হচ্ছে .text()
যখন আপনি DOM মধ্যে হালনাগাদ তথ্য যা শুধু ডেটা / ব্যবহারকারী দেখার জন্য লেখা চাই।
.html()
বেশিরভাগ ক্ষেত্রে একটি ডিভির মধ্যে এইচটিএমএল সামগ্রী পেতে ব্যবহার করা উচিত।
যখন আপনি একটি সাধারণ পাঠ্য হিসাবে মানটি প্রদর্শন করতে চান তখন টেক্সট (…) ব্যবহার করুন।
আপনি যখন এইচটিএমএল ফর্ম্যাট পাঠ্য (বা এইচটিএমএল সামগ্রী) হিসাবে মানটি প্রদর্শন করতে চান তখন .html (…) ব্যবহার করুন।
আপনার পাঠ্য (যেমন একটি ইনপুট নিয়ন্ত্রণ থেকে আগত) এমন অক্ষর / ট্যাগ নেই যা এইচটিএমএল-এর বিশেষ অর্থ রাখে না তা নিশ্চিত হওয়ার সময় আপনার অবশ্যই টেক্সট (...) ব্যবহার করা উচিত । এটি সত্যই গুরুত্বপূর্ণ কারণ এর ফলে টেক্সটটি সঠিকভাবে প্রদর্শিত হবে না তবে এটি অবাঞ্ছিত জেএস স্ক্রিপ্ট স্নিপেট (যেমন অন্য কোনও ব্যবহারকারী ইনপুট থেকে আগত) সক্রিয় হওয়ার কারণ হতে পারে ।
মূলত, $ ("# ডিভ") h এইচটিএমএল বিষয়বস্তু সেট করার জন্য এলিমেন্ট.ইনার এইচটিএমএল এবং $ ("# ডিভি") ব্যবহার করে text
http://docs.jquery.com/Attributes/html :
Set the html contents of every matched element
http://docs.jquery.com/Atributes/text :
Similar to html(), but escapes HTML (replace "<" and ">" with their HTML
entities).
'('। div ')। এইচটিএমএল (ভাল) সমস্ত নির্বাচিত উপাদানগুলির HTML মান নির্ধারণ করবে, $ ('। div ')। পাঠ্য (ভাল) সমস্ত নির্বাচিত উপাদানগুলির পাঠ্য মান সেট করবে।
JQuery.text () এর জন্য এপিআই ডক্স
JQuery.html () এর জন্য এপিআই ডক্স
আমি অনুমান করব যে তারা যথাক্রমে নোড # টেক্সট কনটেন্ট এবং এলিমেন্ট # অভ্যন্তরীণ এইচটিএমএল এর সাথে মিলে যায়। (গেকো ডোম রেফারেন্স)।
সহজ শব্দে।
এইচটিএমএল () - অভ্যন্তরীণ এইচটিএমএল (এইচটিএমএল ট্যাগ এবং পাঠ্য) পেতে।
পাঠ্য () - ভিতরে উপস্থিত থাকলে কেবল পাঠ্য পেতে (কেবল পাঠ্য)
ভিন্ন .html()
হিসাবে এইচটিএমএল হিসাবে মূল্যায়ন করা হয়, .text()
একটি পাঠ্য হিসাবে মূল্যবান।
এইচটিএমএল এইচটিএমএল একটি ব্লক বিবেচনা করুন
<div id="mydiv">
<div class="mydiv">
This is a div container
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
</ul>
a text after ul
</div>
</div>
জাতীয়
var out1 = $('#mydiv').html();
var out2 = $('#mydiv').text();
console.log(out1) // This output all the html tag
console.log(out2) // This is output just the text 'This is a div container Link 1 Link 2 a text after ul'
চিত্রটি এই লিঙ্কটি থেকে http://api.jquery.com/text/
.text()
এইচটিএমএল ট্যাগের মধ্যে আপনাকে প্রকৃত পাঠ্য দেবে। উদাহরণস্বরূপ, p
ট্যাগগুলির মধ্যে অনুচ্ছেদে পাঠ্য । মজার আকর্ষণীয় বিষয়টি হ'ল এটি আপনাকে $
নির্বাচিত উপাদানটির বাছাই করা উপাদানটির বাচ্চাদের উপাদানগুলির সাথে সমস্ত মৌলিক উপাদান যা আপনার নির্বাচক দ্বারা লক্ষ্যবস্তু করে তা আপনাকে দেবে । তাই আপনি যদি একাধিক থাকে তাহলে p
শরীর উপাদান ভিতরে পাঠ্য সহ ট্যাগ এবং আপনি একটি না $(body).text()
, আপনি পাবেন সব সব অনুচ্ছেদ থেকে পাঠ্য। (কেবল পাঠ্য, p
নিজেরাই ট্যাগ নয়))
.html()
আপনাকে পাঠ্য এবং ট্যাগ দেবে। সুতরাং $(body).html()
মূলত আপনাকে আপনার পুরো পৃষ্ঠাটি এইচটিএমএল পৃষ্ঠা দেবে
.val()
value
যেমন একটি বৈশিষ্ট্য আছে এমন উপাদানগুলির জন্য কাজ করে input
। একটি input
অন্তর্ভুক্ত টেক্সট বা HTML আছে না এবং এইভাবে .text()
এবং .html()
উভয় হতে হবে null
জন্য input
উপাদান।
আমি মনে করি যে পার্থক্যটি এইচটিএমএল ট্যাগ in text()
োকানো আপনার এইচটিএমএল ট্যাগের কাজ করে না
$('#output').html('You are registered'+'<br>' +' '
+ 'Mister'+' ' + name+' ' + sourname ); }
আউটপুট:
You are registered <br> Mister name sourname
text()
সঙ্গে প্রতিস্থাপনhtml()
আউটপুট
You are registered
Mister name sourname
তারপরে ট্যাগটি <br>
কাজ করেhtml()
text()
।
পাঠ্য ফাংশনটি সরল পাঠ্য হিসাবে মানটি পুনরুদ্ধার করে বা অন্যথায়, এইচটিএমএল ফাংশন সেট করে বা এটি পরিবর্তন বা সংশোধন করতে এইচটিএমএল ট্যাগ হিসাবে মানটি পুনরুদ্ধার করে। আপনি যদি কেবল বিষয়বস্তু পরিবর্তন করতে চান তবে পাঠ্য () ব্যবহার করুন। তবে যদি আপনাকে মার্কআপ পরিবর্তন করতে হয় তবে আপনাকে এইচএমটিএল () ব্যবহার করতে হবে।
এটি ছয় বছর পর আমার কাছে একটি জঘন্য উত্তর, কিছু মনে করবেন না।
text()
পদ্ধতিটি দ্রুততর হয় ?? কত?