මෙය ඉතා පැරණි ප්රශ්නයක් වුවද, මෑත තොරතුරු සමඟ එය යාවත්කාලීන කිරීම හොඳ යැයි මම සිතුවෙමි;
JQuery 1.8 සිට jQuery.parseHTML () ශ්රිතයක් ඇති අතර එය දැන් මූලද්රව්ය නිර්මාණය කිරීමේ වඩාත් කැමති ක්රමයකි. එසේම, HTML හරහා විග්රහ කිරීමේදී ගැටළු කිහිපයක් තිබේ $('(html code goes here)')
, උදාහරණයක් ලෙස නිල jQuery වෙබ් අඩවිය ඔවුන්ගේ එක් නිකුතුවක පහත සඳහන් දේ සඳහන් කරයි :
ලිහිල් කළ HTML විග්රහ කිරීම: in (htmlString) ටැග් කිරීමට පෙර ඔබට නැවත වරක් ප්රමුඛ අවකාශ හෝ නව රේඛා තිබිය හැකිය. බාහිර ප්රභවයන්ගෙන් ලබාගත් HTML විග්රහ කිරීමේදී ඔබ $ .parseHTML () භාවිතා කරන ලෙස අපි තවමත් තරයේ අවවාද කරමු, අනාගතයේදී HTML විග්රහ කිරීමේදී තවදුරටත් වෙනස්කම් සිදු කරනු ඇත.
සත්ය ප්රශ්නයට සම්බන්ධ වීමට, සපයා ඇති උදාහරණය පහත පරිදි පරිවර්තනය කළ හැකිය:
this.$OuterDiv = $($.parseHTML('<div></div>'))
.hide()
.append($($.parseHTML('<table></table>'))
.attr({ cellSpacing : 0 })
.addClass("text")
)
;
එය අවාසනාවකට සාධාරණ ලෙස භාවිතා කිරීමට වඩා පහසු නැත $()
, නමුත් එය ඔබට වැඩි පාලනයක් ලබා දෙයි, උදාහරණයක් ලෙස ඔබට ස්ක්රිප්ට් ටැග් බැහැර කිරීමට තෝරා ගත හැකිය (එය පේළිගත ස්ක්රිප්ට් වැනි දේ ඉතිරි කරයි onclick
):
> $.parseHTML('<div onclick="a"></div><script></script>')
[<div onclick="a"></div>]
> $.parseHTML('<div onclick="a"></div><script></script>', document, true)
[<div onclick="a"></div>, <script></script>]
එසේම, නව යථාර්ථයට ගැලපෙන ඉහළ පිළිතුරේ මිණුම් ලකුණක් මෙන්න:
JSbin සබැඳිය
jQuery 1.9.1
$ .පාර්ස්එච්ටීඑම්එල්: මීටර් 88 යි
$ (par. parseHTML): 240ms
<div> </div>: 138ms
<div>: 143ms
createElement: 64ms
එය parseHTML
වඩා බොහෝ සමීප බව createElement
පෙනේ $()
, නමුත් ප්රති j ල නව jQuery වස්තුවකට එතීමෙන් පසු සියලු තල්ලුව නැති වී යයි