මම හිතන්නේ ටිම් ඒක හොඳට කිව්වා , නමුත් අපි ආපසු යමු:
DOM මූලද්රව්යයක් යනු වස්තුවකි, මතකයේ ඇති දෙයක්. OOP හි බොහෝ වස්තූන් මෙන්, එයට ගුණාංග ඇත. මූලද්රව්යයේ අර්ථ දක්වා ඇති ගුණාංගවල සිතියමක් ද එහි ඇත (සාමාන්යයෙන් මූලද්රව්යය නිර්මාණය කිරීම සඳහා බ්රව්සරය කියවූ සලකුණු වලින් පැමිණේ). එම මූලද්රව්යය ගේ සමහර ගුණ ඔවුන්ගේ ලබා මූලික අගයන් ගුණාංග සමාන නම් සහිත ( value
ඇති "අගය" අංග එහි මූලික අගය ලැබෙන, href
ඇති "තියෙන <a>" අංග එහි මූලික අගය ලැබෙන, නමුත් එය හරියටම එම අගය නොවේ;className
සිට "පන්ති" ගුණාංගය). වෙනත් දේපලවල ආරම්භක අගයන් වෙනත් ආකාරවලින් ලබා ගනී: නිදසුනක් ලෙස, parentNode
දේපලෙහි වටිනාකම ලැබෙන්නේ එහි මව් මූලද්රව්යය මත පදනම්ව ය;style
දේපල, එයට “ශෛලීය” ලක්ෂණයක් තිබේද නැද්ද යන්න.
පිටුවක මෙම නැංගුරම සලකා බලමු http://example.com/testing.html
:
<a href='foo.html' class='test one' name='fooAnchor' id='fooAnchor'>Hi</a>
සමහර අනවශ්ය ASCII කලාව (සහ බොහෝ දේ අතහැර දමයි):
+ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| HTMLAnchorElement |
+ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| href: "http://example.com/foo.html" |
| නම: "fooAnchor" |
| id: "fooAnchor" |
| className: "එකක් පරීක්ෂා කරන්න" |
| ගුණාංග: |
| href: "foo.html" |
| නම: "fooAnchor" |
| id: "fooAnchor" |
| පන්තිය: "එකක් පරීක්ෂා කරන්න" |
+ −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ගුණාංග සහ ගුණාංග එකිනෙකට වෙනස් බව සලකන්න.
දැන්, ඒවා එකිනෙකට වෙනස් වුවත්, මේ සියල්ල පරිණාමය වී ඇත්තේ බිම් මට්ටමේ සිට නිර්මාණය කර ඇති නිසා නොව, ඔබ ඒවා සැකසුවේ නම් ඒවායින් ලබාගත් ගුණාංගයට ගුණාංග ගණනාවක් නැවත ලියයි. නමුත් සියල්ලම එසේ නොවන අතර, ඔබට href
ඉහළින් පෙනෙන පරිදි, සිතියම්ගත කිරීම සැමවිටම "අගය පසුකර යන්න" නොවේ, සමහර විට අර්ථ නිරූපණයන් ද ඇත.
දේපල වස්තුවක ගුණාංග වීම ගැන කතා කරන විට, මම කතා කරන්නේ වියුක්තව නොවේ. JQuery නොවන කේත කිහිපයක් මෙන්න:
var link = document.getElementById('fooAnchor');
alert(link.href); // alerts "http://example.com/foo.html"
alert(link.getAttribute("href")); // alerts "foo.html"
(එම අගයන් බොහෝ බ්රව්සර් වලට අනුව ය; යම් වෙනසක් ඇත.)
මෙම link
වස්තුව සැබෑ දෙයක් වන අතර, ඔබ ප්රවේශ අතර සැබෑ වෙනසක් තියෙනවා දකින්න පුළුවන් දේපල ඒ, ඒ හා ප්රවේශ විශේෂණය .
ටිම් පැවසූ පරිදි, බොහෝ විට, අපට අවශ්ය වන්නේ දේපල සමඟ වැඩ කිරීමයි. අර්ධ වශයෙන් එසේ වන්නේ ඒවායේ අගයන් (ඔවුන්ගේ නම් පවා) බ්රව්සර් හරහා වඩාත් අනුකූල වන බැවිනි. අපට වැඩිපුරම අවශ්ය වන්නේ ගුණාංග හා සම්බන්ධ දේපලක් නොමැති විට (අභිරුචි ගුණාංග) හෝ එම විශේෂිත ගුණාංගය සඳහා, ගුණාංගය සහ දේපල 1: 1 නොවන බව අප දන්නා විට ( href
ඉහත සහ “href” වැනි) .
සම්මත ගුණාංග විවිධ DOM පිරිවිතරයන්හි දක්වා ඇත:
මෙම පිරිවිතරයන්ට විශිෂ්ට දර්ශක ඇති අතර ඒවාට සබැඳි තබා ගැනීමට මම නිර්දේශ කරමි; මම ඒවා නිතරම භාවිතා කරමි.
නිදසුනක් ලෙස, data-xyz
ඔබේ කේතයට මෙටා-දත්ත සැපයීම සඳහා මූලද්රව්යයන් මත තැබිය හැකි ඕනෑම ගුණාංගයක් අභිරුචි ගුණාංගවලට ඇතුළත් වේ (දැන් එය data-
උපසර්ගයට ඇලී සිටින තාක් කල් HTML5 අනුව වලංගු වේ ). (JQuery හි මෑත සංස්කරණ මඟින් ඔබට ශ්රිතය data-xyz
හරහා මූලද්රව්ය වෙත ප්රවේශය ලබා දෙයි data
, නමුත් එම ශ්රිතය හුදෙක් ගුණාංග සඳහා ප්රවේශයක් පමණක් නොවේdata-xyz
[එය ඊට වඩා වැඩි හා අඩු දෙකම කරයි]; ඔබට එහි විශේෂාංග අවශ්ය නොවන්නේ නම්, මම attr
ශ්රිතය අන්තර්ක්රියා කිරීමට භාවිතා කරමි data-xyz
ගුණාංගය සමඟ .)
මෙම attr
කාර්යය ඔවුන් ඔබ අවශ්ය කල්පනා දේ ලැබෙන්නේ, වඩා වචනාර්ථයෙන් විශේෂණය වටේම සමහර සංකීර්ණ තර්ක ඇති කිරීම සඳහා භාවිතා. එය සංකල්ප සම්බන්ධ කළේය. වෙත ගමන් කිරීම prop
සහ ඒවා අවුල් කිරීම attr
සඳහා අදහස් කරන ලදි. V1.6.0 jQuery කෙටියෙන් ඒ පිළිබඳ වැඩි දුර ගිය නමුත්, ක්රියාකාරිත්වය ඉක්මනින් ආපහු එක් කරන ලදී කිරීමට attr
ජනතාව භාවිතා කරන තැන පොදු තත්ත්වයන් හැසිරවීමට attr
තාක්ෂණික ඔවුන් භාවිතා කළ යුතු විට prop
.