راکت
حل شده

چطور یه فانشن ساخت و حذف المنت بسازیم

4 پاسخ

سلام دوستان. یه فانشنی ساختم که یه ورودی به عنوان آیدی میگیره و هردفعه که فراخوانی میشه یه input با همون آیدی که فانشن بصورت ورودی گرفته، می سازه. اما میخوام طوری این کار رو انجام بده که با هربار فراخوانی، اول input قبلی ای که ساخته رو از صفحه html حذف کنه و یه جدیدی رو بسازه.
چطور این کار رو انجام بدم؟
js:

function getInput(textInputId) {
    textInput = document.createElement("input");
    textInput.setAttribute("id", textInputId);
    btn.parentElement.appendChild(textInput);
}

html:

<body>
    <button type="button" id="btn" onclick="getInput('#textInput');">Get input</button>
</body>

@ali.bayat @milad @mhyeganeh @abedim910 @muhammad

ثبت پرسش جدید

پاسخ‌ها

4
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

با آی دی یا کلاس اول المان رو پیدا کن
حذفش کن

document.querySelector("#textInputId").remove()

و بعد دوباره المان رو بساز

Mesusjk
Mesusjk
@Mesusjk

تخصص: برنامه نویس جنگو و پایتون

اگه منظورتون این کار پایینه، خب هرچی میکنم المنت رو پیدا نمیکنه و کلا null برمیگردونه

function getInput(textInputId) {
    let btn = document.querySelector("#btn");

    let textInput = document.querySelector(textInputId);
    console.log(textInput) // returns null
    if (textInput) { textInput.remove(); }

    textInput = document.createElement("input");
    textInput.setAttribute("id", textInputId);
    btn.parentElement.appendChild(textInput);
}

@ali.bayat

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

به این قسمت از کدت دقت کن


textInput.setAttribute("id", textInputId);

داری یه متغیر رو به عنوان id مقداری دهی میکنی
که مقدارش برابر با textInput# هست
در صورتی که باید برابر با textInput باشه
داری # رو هم پاس میدی
که باعث میشه المان پیدا نشه

textInput.setAttribute("id", "textInput");

شاید پاسخ شما همین‌جا باشد

Mesusjk
Mesusjk
@Mesusjk

تخصص: برنامه نویس جنگو و پایتون

اوه اوه. واقعا اصلا متوجه این موضوع نشدم. حدود یک ساعت باهاش درگیر بودم. خیلی ممنونم که این نکته رو بهم اطلاع دادید. الان کاملا درست داره انجامش میده.
@ali.bayat

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام