2013-03-06 2 views
1

У меня проблема с моим javascript, и мне нужно найти последний id div в моем html-документе. Я могу найти его, посмотрев на него, но я хочу, чтобы он был автоматическим в JavaScript.Как найти последний идентификатор в HTML с JavaScript

<body> 
    <div id="start"> 
    <div id="1">Text</div> 
    <div id="2">Text</div> 
    <div id="3">Text</div> 
    <div id="4">Text</div> 
    <div id="5">Text</div> 
    <div id="6">Text</div> 
    </div> 
</body> 

JavaScript:

function setCookie() { 
    document.cookie = '1'; 
} 

function startPage() { 

    var cookieValueInt = parseInt(document.cookie); 
    var secondPage = cookieValueInt + 1; 
    document.getElementById(document.cookie).style.visibility = 'visible'; 
    document.getElementById(secondPage).style.visibility = 'visible'; 
    if (cookieValueInt == 1) { 
     document.getElementById('leftarrow').style.visibility = 'hidden'; 
    } 

} 

function nextPage() { 
    var cookieValueInt = parseInt(document.cookie); 
    var secondPage = cookieValueInt + 1; 
    var newCookieValue = cookieValueInt + 2; 
    document.getElementById(document.cookie).style.visibility = 'hidden'; 
    document.getElementById(secondPage).style.visibility = 'hidden'; 
    document.getElementById(newCookieValue).style.visibility = 'visible'; 
    document.getElementById(newCookieValue + 1).style.visibility = 'visible'; 
    document.getElementById('leftarrow').style.visibility = 'visible'; 
    document.cookie = newCookieValue; 


} 

function previousPage() { 
    var cookieValueInt = parseInt(document.cookie); 
    var secondPage = cookieValueInt + 1; 
    var newCookieValue = cookieValueInt - 2; 

    document.getElementById(document.cookie).style.visibility = 'hidden'; 
    document.getElementById(secondPage).style.visibility = 'hidden'; 
    document.getElementById(newCookieValue).style.visibility = 'visible'; 
    document.getElementById(newCookieValue + 1).style.visibility = 'visible'; 
    document.cookie = newCookieValue; 
    cookieValueInt = parseInt(document.cookie); 
    if (cookieValueInt == 1) { 
     document.getElementById('leftarrow').style.visibility = 'hidden'; 
    } 
} 
+0

@jantimon Неверно в HTML5. –

+0

@Kolink thanks - не знал, что – jantimon

ответ

1

Вы можете попробовать использовать JQuery и использовать следующий код:

$(document).ready(function(){ 

     var attrId = $('#start').children('div:last-child').attr('id'); 

}); 

Кроме того, смотреть, как YOR HTML не действует, как вы пропускаете < от закрытия сНа тега.

+0

Бог , что это с людьми и с помощью jQuery для * все *? –

+0

, потому что он абстрагирует несогласованности браузера. Если вы хотите написать коды и коды кодов, которые кто-то еще написал (и тестировал блок), вы тоже более чем приветствуетесь. –

+0

Если вы посмотрите на мой ответ, это две строки. ДВЕ ЛИНИИ. Твое - три. jQuery больше. Nyah. (кроме того, jQuery 2 является самой тупой вещью в Интернете ...) –

1

Не используйте цифры в качестве идентификаторов. Хотя это технически справедливо в HTML5, это плохое использование идентификаторов и очень подвержено случайным дубликатам. Я бы предложил использовать <div id="someprefix_1"> и так далее. Вы всегда можете взять идентификатор и обрезать префикс, чтобы получить номер.

Это в стороне, это будет хорошо работать (за исключением IE7 и ниже):

var divsWithIDs = document.querySelectorAll("div[id]"), 
    lastDiv = divsWithIDs[divsWithIDs.length-1]; 

EDIT: Если объединить это с идеей префикса, вы можете легко получить «последний элемент с таким ID ":

var divsWithPrefixedIDs = document.querySelectorAll("div[id^='someprefix_']"), 
    lastDiv = dovsWithPrefixedIDs[divsWithPrefixedIDs.length-1]; 
+0

где shoud я положил в треску? var divsWithIDs = document.querySelectorAll ("div [id]"), lastDiv = divsWithIDs [divsWithIDs.length-1]; –

+0

Где бы вы ни находились, вам нужно получить доступ к последнему элементу. –

+0

извините за поведение noob, но мне нужно это для того, чтобы называть betom на следующей странице, можете ли вы помочь мне с этим и поставить предупреждение на i? PLS написать код, так что я понимаю больше и очень большое спасибо за помощь –

1

Я бы рекомендовал использовать контейнер:

var parentEl = document.getElementById("start"); 
var id = parentEl.children(parentEl.children.length-1).id; 

Кроме того, вы не должны использовать числа в качестве идентификаторов, см ответ Колинка. изменение: исправленный код