[英]reading width of element javascript
我正在嘗試讀取元素的寬度,然后將另一個元素的寬度設置為等於該寬度。 由於某種原因,javascript沒有正確讀取寬度,我不知道為什么。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="../StyleSheet.css" rel="stylesheet" type="text/css" />
<link href="iflyreader.css" rel="stylesheet" type="text/css" />
<title></title>
<script type="text/javascript">
function setCommentWidth() {
var comment = document.getElementById("comments");
var pleft = document.getElementById("leftcontainer");
alert(pleft.style.width.toString());
comment.style.width = parseInt(pleft.style.width) * 2;
}
</script>
</head>
<body onclick="setCommentWidth()" >
<form id="form1" runat="server">
<div id = "container" >
<h2> Ifly Checkin Sheet</h2>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div class="row">
<div class="rowcontainer" id ="leftcontainer">
<p class="left">Last Name: <%# DataBinder.Eval(Container.DataItem, "lastname") %> </p>
<p class="left">First Name: <%# DataBinder.Eval(Container.DataItem, "firstname") %> </p>
<p class="left">Date: <%# DataBinder.Eval(Container.DataItem, "timestamp") %></p></div>
<div class="rowcontainer"> <p class="right">Member Number: <%# DataBinder.Eval(Container.DataItem, "memnum") %> </p>
<p class="right">Facility: <%# DataBinder.Eval(Container.DataItem, "facility") %> </p>
<p class="right">Reason: <%# DataBinder.Eval(Container.DataItem, "reason") %> </p></div>
<p id="comments" >Comments: <%# DataBinder.Eval(Container.DataItem, "comments") %></p>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
我認為這可能與我的css聲明值有關,但我不確定。 這是我的樣式表。
body
{
background-color: #fff;
}
.cell {
display:inline-block;
margin-left:5px;
margin-right:5px;
padding:5px;
width: 100px;
}
.row
{
margin: 10px;
padding: 10px;
display: inline-block;
background-color: #888;
border-radius: 5px;
}
#container
{
margin-left: auto;
margin-right: auto;
width : 900px;
background-color: #fefefe;
padding: 50px;
}
p
{
font-weight: bold ;
color: #fff;
}
p.left
{
text-align: left;
width: auto;
}
p.right
{
text-align: right;
width: auto;
}
.rowcontainer
{
display: inline-block;
}
嘗試offsetWidth。
function setCommentWidth() {
var comment = document.getElementById("comments");
var pleft = document.getElementById("leftcontainer");
alert(pleft.offsetWidth);
comment.style.width = parseInt(pleft.offsetWidth) * 2;
}
上面的代碼中有很多可能的錯誤,所以我會嘗試猜測一下:
首先,如果你想通過javascript更改寬度樣式,而不使用jquery,你應該在你的值中添加“px”:
comment.style.width = parseInt(pleft.style.width) + "px";
然后,因為你的代碼是asp,在我看來你正在重復背后的區域:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
因此,如果您嘗試使用重復的“id”值,它將無法工作,因為“id”應該是唯一的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.