2010-06-02 3 views
1

У меня есть таблица (или область) и вы хотите установить ее значение Ширина и Высота в другое Div (или область).Как получить/установить Div и ширину таблицы/высоту

Второй на самом деле является модальным индикатором Ajax, отображающим загружаемый текст, когда страница асинхронно отправляется обратно. вот пример

<table id="MainTable"> 
    <tr> 
     <td> 
      Content .... 
     </td> 
    </tr> 
</table> 

<div id="Progress"> 
    Ajax Indocator 
</div> 

следующий Javascript не работает

document.getElementById("Progress").style.width = document.getElementById("MainTable").style.width; 
document.getElementById("Progress").style.height = document.getElementById("MainTable").style.height; 

Он должен работать как на IE и FireFox. как исправить это.

Я проверил другое решение в StackOverFlow, но я не смог его исправить.

Я жду, чтобы услышать от вас.


Обновление: Я использую этот

<script> 
function SetSize(regionToChange, mainRegion) { 
    $(document).ready(function() { 
     $('#regionToChange) 
.width($('#mainRegion).outerWidth()) 
.height($('#mainRegion).outerHeight()); 
    }); 
} 
</script> 

и я называю это как

<asp:Button ID="btnReset" runat="server" SkinID="Button" Text="Reset" OnClick="btnReset_OnClick" OnClientClick="SetSize('Progress', 'MainTable');" /> 

Но он показывает мне ошибку, которая не может найти объект


Обновление 2 Я вижу эту ошибку

alt text

и в отладчике я сталкиваюсь с этим

alt text

+0

это выглядит, как вы короткие апострофы. Являются ли эти параметры строковыми литералами или элементами DOM? – jAndy

+0

'regionToChange' всегда является элементом' DIV', а 'mainregion' всегда является' таблицей' или 'fieldset' или' Div', и, как вы можете видеть в моем вопросе, я вызываю метод SetSize с двумя параметрами , Один для Div для изменения и One для указания объекта на использование значений width и height propertis. Таким образом, этот метод является общим и используется для всех страниц, поэтому он должен получить 2 параметра и не должен быть статическим. –

+0

понимается, но это не отвечает на мой вопрос. Если параметры DOM-объекты используют '$ (regionToChange)'. Если они являются строковыми литералами, используйте '$ ('#' + regionToChange)' – jAndy

ответ

1

в Jquery вы можете сделать

$("#Progress").css('width', function(){ 
    return $("#MainTable").width()+'px'; 
}); 

и так с высоты ...

редактировать

на JavaScript,

это

document.getElementById("Progress").style.width = document.getElementById("MainTable").style.width; 
document.getElementById("Progress").style.height = document.getElementById("MainTable").style.height; 

будет работать, если ваш HTML-то вроде этого для ид = "MainTable"

<table id="MainTable" style="width: 500px; height: 300px;"> 
    <tr> 
     <td> 
      Content .... 
     </td> 
    </tr> 
</table> 

потому, что вы обращаетесь атрибут стиля ...

edit2

function SetSize(regionToChange, mainRegion) { 
     $(regionToChange) 
     .width($(mainRegion).outerWidth()) 
     .height($(mainRegion).outerHeight()); 

    } 

//you can use it as 

SetSize('#Progress','#MainTable'); // prefix '#'if it's an ID 
+0

@Reigel - как насчет Javascript? –

+0

см. Редактировать ... – Reigel

+0

@Reigel - я использовал ваш, и он не сработал. Я также обновляю свой вопрос с запросом, который вы упомянули, но он показывает ошибку. и это не сработает. Взгляните, пожалуйста. –

2

говорят в JQuery:

$(document).ready(function(){ 
    $('#Progress') 
    .width($('#MainTable').outerWidth()) 
    .height($('#MainTable').outerHeight()); 
}); 
+0

Что о Javascript - И не следует понимать, что это общий метод, который будет использоваться во всех страниц приложения, поэтому идентификаторы должны быть переменными. –

+0

Ну, на самом деле это Javascript. Если вы ищете совместимость между браузерами, используя фреймворк, такой как jQuery, это лучшее, что вы можете сделать. – jAndy

+0

Проверьте мое обновление jAndy. У меня есть ошибка с этим скриптом –

Смежные вопросы