2015-11-03 34 views
1

嘿,我正在做的事情,但可以和不想更改HTML。添加一個ID按鈕是不可能的。我想選擇第二個無線電輸入。如何在不使用id的情況下選擇我的第二個單選按鈕?

這是HTML:

<fieldset> 
     <legend>I want to sign up:</legend> 
     <label> 
      <input type="radio" name="submit-for" value="project"> 
      <span>For project</span> 
     </label> 
     <label> 
      <input type="radio" name="submit-for" value="stage"> 
      <span>As intern</span> 
     </label> 
    </fieldset> 

這是我想在JavaScript中選擇的方式,但它沒有工作:

document.querySelector('input[type="radio"]:nth-of-type(2)').onclick = function() { 
     document.getElementById("project").style.display = 'none'; 
     document.getElementById("stage").style.display = 'block'; 
    }; 

document.querySelector('input[type="radio"]:nth-child(2)').onclick = function() { 
     document.getElementById("project").style.display = 'none'; 
     document.getElementById("stage").style.display = 'block'; 
    }; 

能有人幫?

+0

'document.querySelectorAll(「字段集輸入[類型:單選]」)。項目(1) '(一定要檢查它是否存在,因爲如果沒有兩個元素,它可能是'undefined') – somethinghere

回答

4

你真的想要選擇「第二個」單選按鈕,還是要選擇「帶有'stage''的單選按鈕?第二個選項聽起來更具可擴展性。

document.querySelector('input[type="radio"][value="stage"]') 

編輯:另外,upvoted你的問題不訴諸ID使用。無論你是否被強迫進入,始終保持良好的習慣。

+0

我<3 YOU !!!非常感謝我被困在這個幾個小時試圖找出如何通過選擇一個單選按鈕來消除我的形式的一部分。最後算出來了。給你帶來積極的能量!不知道你可以按價值選擇。 – Nami92

1
document.querySelectorAll('fieldset input[type="radio"]')[1]=function() { 
    document.getElementById("project").style.display = 'none'; 
     document.getElementById("stage").style.display = 'block'; 
    }; 
0

您可以使用document.getElementByName,選擇集的第二個:

document.getElementsByName("submit-for")[1]; 
0

用戶@somethinghere接近和OP選擇了不適用的問題所以對於標題的答案那些誰尋找答案這裏的問題的標題,你去:

var r = document.querySelectorAll('input[type="radio"]'); 
if (r.item.length > 0) {console.log(r.item(1)); 
相關問題