আইডি দিয়ে ক্রিয়েটমেন্ট?


288

আমি এই ডিভ আইটেমটি একটি আইডি দেওয়ার জন্য এই কোডটি সংশোধন করার চেষ্টা করছি, তবে আমি গুগলে কিছুই খুঁজে পাইনি, এবং আইডিনেম কাজ করে না। আমি সংযোজন সম্পর্কে কিছু পড়েছি , তবে এটি কোনও কাজের জন্য বেশ জটিল বলে মনে হচ্ছে যা বেশ সহজ বলে মনে হচ্ছে, সুতরাং এর বিকল্প আছে কি? ধন্যবাদ :)

g=document.createElement('div'); g.className='tclose'; g.v=0;

4
না মানে g.id = 'foo';?
Vidime বিদাস

1
আমি এখন জানি যে আমি মই বলতে
চাইছিলাম

3
এই গুগল অনুসন্ধানটি কিছু যুক্তিসঙ্গত ফলাফল দেয়।
ফেলিক্স ক্লিং

উত্তর:


522

আপনার .setAttribute()পদ্ধতিটি ব্যবহার করা উচিত :

g = document.createElement('div');
g.setAttribute("id", "Div1");

4
এই কোড সহ, আমরা কেবলমাত্র উপাদান আইডিই তৈরি করছি না তবে উপাদানটির সমস্ত বৈশিষ্ট্যের জন্যও।
মাই

3
@ মাই আপনি আরও ব্যাখ্যা করতে পারেন? আমি বাক্যটি বুঝতে পারি না।
mystrdat

15
@mystrdat আমি মনে করি মাই বলতে চেষ্টা করছেন যে সেটএট্রিবিউট () কেবলমাত্র আইডি নয় অন্যান্য উপাদানের অন্যান্য বৈশিষ্ট্য তৈরি করতে ব্যবহার করা যেতে পারে।
চক এল

94

আপনি g.id = 'desiredId'তৈরি করেছেন এমন উপাদানটির আইডি সেট করতে আপনি আপনার উদাহরণ থেকে ব্যবহার করতে পারেন ।


আমি সর্বদা জিনিস যে কম কোড সহ অ্যানুয়ার সেরা হয়। আরও গুলি করা সম্ভব নয়। ধন্যবাদ.
m3nda


34

তুমি ব্যবহার করতে পার Element.setAttribute

উদাহরণ:

g.setAttribute("id","yourId")

g.setAttribute("class","tclose")


এটি আরও ভাল করার জন্য আমার ফাংশনটি এখানে:

function createElement(element, attribute, inner) {
  if (typeof(element) === "undefined") {
    return false;
  }
  if (typeof(inner) === "undefined") {
    inner = "";
  }
  var el = document.createElement(element);
  if (typeof(attribute) === 'object') {
    for (var key in attribute) {
      el.setAttribute(key, attribute[key]);
    }
  }
  if (!Array.isArray(inner)) {
    inner = [inner];
  }
  for (var k = 0; k < inner.length; k++) {
    if (inner[k].tagName) {
      el.appendChild(inner[k]);
    } else {
      el.appendChild(document.createTextNode(inner[k]));
    }
  }
  return el;
}

উদাহরণ 1:

createElement("div");

এটি ফেরত দেবে:

<div></div>

উদাহরণ 2:

createElement("a",{"href":"http://google.com","style":"color:#FFF;background:#333;"},"google");`

এটি ফেরত দেবে:

<a href="http://google.com" style="color:#FFF;background:#333;">google</a>

উদাহরণ 3:

var google = createElement("a",{"href":"http://google.com"},"google"),
    youtube = createElement("a",{"href":"http://youtube.com"},"youtube"),
    facebook = createElement("a",{"href":"http://facebook.com"},"facebook"),
    links_conteiner = createElement("div",{"id":"links"},[google,youtube,facebook]);

এটি ফেরত দেবে:

<div id="links">
    <a href="http://google.com">google</a>
    <a href="http://youtube.com">youtube</a>
    <a href="http://facebook.com">facebook</a>
</div>

আপনি নতুন উপাদান তৈরি করতে পারেন এবং অ্যাট্রিবিউট (গুলি) সেট করতে পারেন এবং শিশু (গুলি) যুক্ত করতে পারেন

createElement("tag",{attr:val,attr:val},[element1,"some text",element2,element3,"or some text again :)"]);

অ্যাট্রি বা শিশু উপাদানগুলির জন্য কোনও সীমা নেই


7
আপনি যখন কোনও স্ট্যান্ডার্ড অবজেক্ট ব্যবহার করতে পারছেন তখন কেন পৃথিবীতে আপনি নিজের সিনট্যাক্সের সাথে এই বৈশিষ্ট্যগুলি পাস করবেন [যা আপনাকে পার্স করতে হবে]? এছাড়াও, যদি আপনাকে প্রচুর পরিমাণে উপাদান তৈরি করতে হয় তবে আপনার একটি টেম্প্লেটিং সিস্টেমের প্রয়োজন [যেমন হ্যান্ডলবারস] এবং অত্যধিক জটিল ফাংশন নয়।
মুনউইভ৯৯

3
এই ফাংশনটি আমার ফাংশনগুলির মধ্যে প্রথম এবং আমি আপডেট করার বিষয়ে ভাবি নি। আমি মনে করি আপনার ধারণাটি আরও ভাল এবং আমি অবশ্যই এটি পরিবর্তন করব। এটার জন্য ধন্যবাদ.
গুজা1501

7
যদিও তারা ঠিক বলেছেন, অতিরিক্ত তথ্য এবং এটির বিষয়ে বিকল্প পদ্ধতি সরবরাহ করার জন্য ধন্যবাদ। খুব অন্তর্দৃষ্টিপূর্ণ।
Fata1Err0r

15

JQuery দিয়ে কেন এটি করবেন না?

var newDiv= $('<div/>', { id: 'foo', class: 'tclose'})

7
সবাই jQuery ব্যবহার করতে বা করতে চায় না। তবে যদি তিনি থাকেন তবে তিনি কেবল var g = $ ('<div id = "blah" class = "tclose">') করতে পারতেন;
ব্র্যাডলি মাউন্টফোর্ড

24
@ ব্র্যাডলিমাউন্টফোর্ড: প্রশ্নটি তিনি jQuery এর সাথে ট্যাগ করেছিলেন।
থাই

2
যদিও স্পেসিফিকেশনটি সম্পত্তির নাম হিসাবে সংরক্ষিত কীওয়ার্ডগুলি ব্যবহার করতে নিষেধ করে না, এখনও classউদ্ধৃতিগুলি দেওয়া আরও ভাল ।
ফেলিক্স ক্লিং

5
var element = document.createElement('tagname');    

element.className= "classname";
element.id= "id";

আপনি চান এটি চেষ্টা করুন।


4

আপনি কোনও আইডি সেট করার চেষ্টা করছেন কিনা তা আমি নিশ্চিত নই যাতে আপনি এটি সিএসএসে স্টাইল করতে পারেন তবে যদি এটি হয় তবে আপনিও চেষ্টা করতে পারেন:

var g = document.createElement('div');    

g.className= "g";

এবং এটি আপনার ডিভের নাম দেবে যাতে আপনি এটি লক্ষ্যবস্তু করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.