如何在javascript中选择DOM元素?
例如:
<div class="des">
<h1>Test</h1>
<div class="desleft">
<p>Lorem Ipsum.</p>
</div>
<div class="Right">
<button>Test</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在我该如何选择h1?这只是较大页面的一部分,因此无法使用getElementsByTagName(),因为其他页面可能会被选中.此外,由于h1稍后文档中可能还有其他内容,我无法将索引(正文)附加到上面.
有没有一种简单的方法可以选择,比如<h1>哪个标签属于desleft?我不能使用jQuery或任何其他库.
我已经搜索了大量的div水平和垂直中心,这是到处给出的方法:
div {
position:fixed;
top:50%;
left:50%;
margin-left:(div width/2)
margin-top: (div height/2)
}
Run Code Online (Sandbox Code Playgroud)
我刚刚找到了一种新的解决方案div,通过将其包裹在桌子内来水平和垂直居中.我在ie7及以上版本以及其他浏览器中测试过它.
这是一个例子:http://jsbin.com/ocenok/2/
我想知道第一种方法是在互联网,SO等各地都可以找到,并且需要预先知道宽度和高度,或者通常是通过Javascript计算的.
表格方法看起来完美无瑕,既不需要javascript,也不需要固定的高度/宽度.
表格方法有任何缺点吗?
(我不知道我想要居中的div的高度/宽度.)
更新(让我的问题更清晰):
我自己讨厌将表格用于非表格/布局数据.
display:table,杀死IE7支持.但我想要了解的是,当我使用单个<table>元素实现这一点时,有什么缺点,如果有的话.
在这里检查答案和类似的问题,没有人推荐这种方法,即使它使用所有有效的HTML元素和语法和规则.
如果每个人都建议使用javascript来处理演示文稿,即使很容易使用CSS它,它也必然有一些缺点.
代码:
<table>
<tr>
<td>
<div>This is div that needs to be centered.</div>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
然后应用以下CSS
table {
width:100%;
height:100%;
position:fixed;
top:0;
left:0;
}
table td {
width : 100%;
text-align: …Run Code Online (Sandbox Code Playgroud) 我正在尝试允许启用MultiViews的Clean-Urls.
我拥有的所有页面都在根文件夹中.
我想要实现以下目标:
(current-status -> what I am trying to achieve)
1. foo.com/services.php -> foo.com/services
2. foo.com/services == foo.com/services/
3. foo.com/services.php/second-level/ == foo.com/services/second-level
Run Code Online (Sandbox Code Playgroud)
该services是不是 一个文件夹,我爆炸$_SERVER['PATH_INFO']并获得第二级的路径数据.
我已经实现了第一个,但是当我启用MultiViews,使用.htaccess文件并写入重写时它失败了.
Options +Indexes +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
Run Code Online (Sandbox Code Playgroud)
(这显然会失败,因为它会将请求更改为services/second-level.php).我知道我可以写入多个重写.htaccess,并有条件地重定向.
但奇怪的是,在实时环境(共享主机)上,它正在工作,根文件夹中没有任何.htaccess文件.由于它是共享主机,我无法读取配置文件.
有关我应该更改(in apache.conf或*.conf)以实现上述内容的配置的任何想法?
如果重要,我正在使用Apache/2.2.22,这个问题在更新后开始发生.
我很久以前就有这种困惑.在chrome检查器上有一个名为无法读取null属性的错误.
在搜索和阅读时,我发现可以将属性(例如样式)应用于DOM元素,但如果将其呈现为javascript对象,则会产生上述错误.
那我该怎么做呢?
<html>
<head>
<style>
#test {background:black;width:30px;height:30px;}
</style>
<script>
var a = document.getElementById('test');
a.style.background = "#f00";
</script>
</head>
<body>
<div id="test">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我做警报时(a型); 它给出了对象.那么,一般来说,我如何改变元素的属性?