appendChild () и createElement () Javascript вопрос - PullRequest
0 голосов
/ 12 апреля 2011

Когда я использую appendChild () и createElement () в моем коде, последующие стили для определенных идентификаторов CSS не применяются.Может кто-нибудь сказать мне, почему?Вот мой код:

function searchDone(results) {
    var result = null;
    var parent = document.getElementById('postWrap');
    var child = null;
    parent.innerHTML = '';
    var insertHTML =" ";

    //Paginating Results Links
    resultNum = results.SearchResponse.Web.Total;
    resultNum = resultNum/10;
    child = document.createElement('div');
    child.id = "paging";
    if(results.SearchResponse.Web.Offset != 0){
        insertHTML ='<span><a class="jsonp b" href="#" rev="'+(results.SearchResponse.Web.Offset-10)+'">&lt;</a></span>';
    }
    if(results.SearchResponse.Web.Offset == 0){
        insertHTML += '<span>1</span>';
    }else{
        insertHTML +='<span><a class="jsonp" href="#" rev="0">1</a></span>';
    }
    for(var i = 1; i <= resultNum; i++){
        if((results.SearchResponse.Web.Offset/10) == i){
            insertHTML += '<span>'+(i+1)+'</span>';
        }else{
            insertHTML += '<span><a class="jsonp b" href="#" rev="'+i*10+'">'+(i+1)+'</a></span>';
        }
    }
    if(results.SearchResponse.Web.Total - results.SearchResponse.Web.Offset > 10){
        insertHTML += '<span><a class="jsonp b" href="#" rev="'+(results.SearchResponse.Web.Offset+10)+'">&gt;</a></span>';
    }
    child.innerHTML = insertHTML;
    parent.appendChild(child);

Затем у меня есть другой код, который обрабатывает мой поисковый запрос через API для Bing (только потому, что теперь Google взимает плату ...)

Далее я использую то же самоеметоды для вставки другого div:

//Insert Paginating results again
    child = null;
    child = document.createElement('div');
    child.innerHTML = insertHTML;
    child.id = "searchResultsPages";
    parent.appendChild(child);

Теперь я хотел бы применить некоторые стили к этим числам.Однако, когда я применяю стиль к searchResultsPage, например

#searchResultsPages{
 float: right;
}

, я не получаю передаваемый стиль.Любопытно, что если я вставлю только один из этих двух элементов, все пойдет по плану, и стиль будет хорошо выглядеть.Проблема в том, что я хотел бы, чтобы страницы отображались вверху и внизу поиска.

Есть идеи, почему это происходит?Я думаю, что это может быть связано с тем, что элемент используется дважды, но я не знаю, почему это повлияет на что-либо, если объекты разные.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011
child.id = "searchResultsPages";

#searchResultsPage{

Видишь что-то не так? :)

Как s

1 голос
/ 12 апреля 2011

Идентификаторы должны быть уникальными на странице, поэтому, если у вас есть два элемента с id = "searchResultsPage", поведение может стать немного странным, а HTML-код недопустим.Вместо этого используйте class = "searchResultsPage", если будет несколько элементов.

Проблема отсутствующих 's, отмеченных другими комментаторами, также весьма важна, хотя, надеюсь, это была просто опечатка в вопросе.

...