سؤال

هل هذا هو الطريق الصحيح للقيام بذلك ؟

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>

<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>

<script language="javascript">
var requests = 2;

function request(self)
{if(self.href != "#")
requests -= 1;

if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>

أريد id="test" تغيير id="nextstep" إذا كانت الطلبات = 0.

هل كانت مفيدة؟

المحلول

قد تتمكن من محاولة:

document.getElementById('test').setAttribute('id', 'nextstep');

نصائح أخرى

هذا هو بالضبط كيف كنت تذهب عن القيام بذلك طالما أنك التفاف عليه في علامات البرنامج النصي...

<script language="javascript" type="text/javascript">
if(requests === 0){
    document.getElementById('test').id = "nextstep";
}
</script>

إذا كنت في محاولة لتحريك هذا على انقر تلك المرساة إذا كنت تستخدم:

<script language="javascript" type="text/javascript">
function changeID(){
    if(requests === 0){
        document.getElementById('test').id = "nextstep";
        alert('TEST!');
    }
}
</script>

<a href="#" id="test" onclick="changeID()">Test</a>

تحرير: كذلك يمكنك تغيير محتوى السؤال بعد نشر هذا...

تحتاج إلى استخدام 'setAttribute' إلى تغيير معرف العلامة الارتساء.

كنت قد حصلت على getElementById('اختبار') صحيح ، ولكن مجرد رمي ".setAttribute('id','nextstep');"

على أمل أن يساعد!

إن(الذات.href != "#")

هناك مشكلة.رابط hrefs هي canonicalised من قبل المتصفح, لذلك على رابط '#' على صفحة 'http://www.example.com/'لديه href السمة 'http://www.example.com/# و لا تتناسب مع الحالة.

تجنب استخدام اسم "الذات" ، كما الاشتباكات مع اسم الكائن العالمي (يعرف أيضا باسم "النافذة").يمكنك تجنب الخرقاء يمر في "الأنا" عن طريق تعيين معالج من جافا سكريبت:

document.getElementById('load').onclick= request;

بدلا من onclick السمة, ثم يمكنك استخدام 'هذا' في الطلب().طلب() أيضا return false; لوقف رابط يجري اتباعها (صنع متصفح انتقل إلى الأعلى).والأفضل أن يكون استخدام <button> (أو <input type="button">) لأنه عمل زر و ليس الرابط الذي أنت يمكن أن تفتح في نافذة جديدة أو علامة.(يمكنك دائما استخدام CSS لجعلها تبدو أقل مثل زر.)

لا تستخدم setAttribute() HTML, كان لديه مشاكل في أي علاقة لهذا الاستخدام.الإعداد element.id بالفعل ما يرام.

ولكن كل هذا يبدو غريب طريقة للذهاب حول ما تريد القيام به في أي حال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top