2015-05-23 160 views
0

我遇到一個我無法解決的問題, 我正在尋找解決方案,但沒有找到符合我需求的解決方案。從動態元素中獲取動態ID並點擊

我有這樣的代碼:

<a class="button-main" id="saveButton7" href="#" onclick="window.location.reload()">Save</a> 

哪裏saveButton是靜態部分,只有數量是動態變化的。

我需要得到該ID,點擊它:

document.getElementById("saveButton7").click(); 

我已經試過這樣的事情:Get dynamic Id from dynamic elements 但它不工作,因爲我需要讓整個標識,並點擊它。

感謝

+1

爲什麼不通過它的類獲取元素? –

+0

你可以使用本地javascript變量來表示當前的數字?每次像''saveButton「+ num'這樣的東西就可以附加它。 – activatedgeek

+0

因爲我有更多的人,我需要這個,我們的目標是創建一個鍵盤快捷方式來點擊特定按鈕 – Marin

回答

1

你爲什麼不試試jQuery選擇:

$("[id^='saveButton']").click(); 

的^表示其ID與開頭的屬性saveButton

編輯1

然後,你可以有這樣的事情:

var anchors = document.getElementsByTagName("a"), item; 
    for (var i = 0, len = anchors.length; i < len; i++) { 
     item = anchors[i]; 
     if (item.id && item.id.indexOf("saveButton") == 0) { 
     // item.id starts with saveButton 
     } 
    } 

EDIT 2 看一看@這個

<a class="button-main" id="saveButton7" href="#" onclick="onClickFunction(event);">Save</a> 


    function onClickFunction(event){ 
      var saveButtonObject = event.target; 
      //do reloading stuff here... 
    } 

事件對象隱含在這裏瀏覽器傳遞...

+0

謝謝,它的工作原理是這樣的,我只使用java腳本,並沒有看jQuery,我的錯誤 – Marin

+0

這可能是**不是**你想要的解決方案,因爲這將創建一個點擊**每**元素它的'id'開頭的寬度'saveButton' - 不僅在'#saveButton7'上,而且還有例如'#saveButtonDisabled','#saveButton3'等。 – connexo

0

考慮到你想有每個這樣的<a>要用鍵盤事件觸發的元素。你可以做這樣的事情在HTML5

<a data-keybind='KEY_HERE' ..>Save</a> 

現在,使用jQuery

$('#DOMelement').on('keypress',function(e){ 
    $("a[data-keybind='"+e.which+"']").trigger('click'); 
}); 

此類事件處理中都可以使用。 基本上我使用jQueryattribute equals selector

0

使用下面的代碼:

$('a[id^="saveButton"]').click(); 

它會發現在你的HTML頁面中的「A」標記,以「saveButton」開頭,然後調用它的onClick事件。