تحويل سلسلة جافاسكريبت إلى كائن HTML
هل يمكنني تحويل سلسلة نصية إلى كائن HTML؟ مثل:
string s = '<div id="myDiv"></div>';
var htmlObject = s.toHtmlObject;
لكي أتمكن لاحقًا من الحصول عليه بواسطة المعرف وإجراء بعض التغييرات في نمطه
var ho = document.getElementById("myDiv").style.marginTop = something;
شكراً جزيلاً مقدماً، لينا
الإجابة رقم 1
var s = '<div id="myDiv"></div>';
var htmlObject = document.createElement('div');
htmlObject.innerHTML = s;
htmlObject.getElementById("myDiv").style.marginTop = something;
الإجابة رقم 2
لا يمكنك القيام بذلك باستخدام الطريقة فقط، إلا إذا استخدمت بعض أطر جافاسكريبت مثل jQuery التي تدعم ذلك..
string s = '<div id="myDiv"></div>'
var htmlObject = $(s); // jquery call
ولكن مع ذلك، لن يتم العثور عليه بواسطة getElementById لأنه لكي يعمل ذلك يجب أن يكون العنصر في DOM... مجرد إنشائه في الذاكرة لا يدرجه في الـ DOM.
ستحتاج إلى استخدام append أو appendTo أو after وما إلى ذلك.. لوضعه في الـ DOM أولاً..
بالطبع يمكن القيام بكل هذا من خلال جافاسكريبت العادية، لكنه سيستغرق خطوات أكثر لتحقيق نفس الشيء... والمنطق هو نفسه في الحالتين..
الإجابة رقم 3
لقد واجهت نفس المشكلة. استخدمت خدعة قذرة مثل هذا:
var s = '<div id="myDiv"></div>';
var temp = document.createElement('div');
temp.innerHTML = s;
var htmlObject = temp.firstChild;
الآن، يمكنك إضافة الأنماط بالطريقة التي تحبها:
htmlObject.style.marginTop = something;
