点击button的时候页面就会卡死奔溃。。<p id="d1">black sheep wall</p>
<input name="d2" value="Hello(name=d2)" />
<input name="d2" value="World(name=d2)" />
<p>Javascript(tagNmae=p)</p><textarea id="output" style="width:420px;height:120px;"></textarea><br /><br />
<button onclick="getByName('d2')">getElementByName</button><br />
<button onclick="getByTagName('p')">getElementsByTagName("p")</button>
<script type="text/javascript">
function getByName(tagName) {
output.value = '';
for (var i = 0; i < document.getElementsByName(tagName).length; i++) {
output.innerHTML += document.getElementsByName(tagName)[i].outerHTML;
}
}
function getByTagName(tagName) { output.value = "";
for (var i = 0; i < document.getElementsByTagName(tagName).length; i++) {
output.innerHTML += document.getElementsByTagName(tagName)[i].outerHTML;
}
}
</script>苦恼啊,还有getElementsByName()和getElementsByTagName()这两个方法到底有什么区别啊
<input name="d2" value="Hello(name=d2)" />
<input name="d2" value="World(name=d2)" />
<p>Javascript(tagNmae=p)</p><textarea id="output" style="width:420px;height:120px;"></textarea><br /><br />
<button onclick="getByName('d2')">getElementByName</button><br />
<button onclick="getByTagName('p')">getElementsByTagName("p")</button>
<script type="text/javascript">
function getByName(tagName) {
output.value = '';
for (var i = 0; i < document.getElementsByName(tagName).length; i++) {
output.innerHTML += document.getElementsByName(tagName)[i].outerHTML;
}
}
function getByTagName(tagName) { output.value = "";
for (var i = 0; i < document.getElementsByTagName(tagName).length; i++) {
output.innerHTML += document.getElementsByTagName(tagName)[i].outerHTML;
}
}
</script>苦恼啊,还有getElementsByName()和getElementsByTagName()这两个方法到底有什么区别啊
getElementsByTagName()返回的是一组相同tag的元素集合。
优化后:
function getByName(tagName) //根据元素的name属性找
{
output.value = '';
var comps = document.getElementsByName(tagName);
var arr = [];
for (var i = 0, len = comps.length; i < len; i++)
{
arr.push(comps[i].outerHTML); }
output.innerHTML = arr.join("");
}
function getByTagName(tagName) //根据元素找 传值例如'input' 查找所有input标签
{
output.value = "";
var comps = document.getElementsByTagName(tagName);
var arr = [];
for (var i = 0, len = comps.length; i < len; i++)
{
arr.push(comps[i].outerHTML);
}
output.innerHTML = arr.join("");
}
{
// 增加参数控制 传入的tagName是否是标签类型
output.value = '';
var comps = isTagName ? document.getElementsByTagName(tagName) : document.getElementsByName(tagName);
var arr = [];
for (var i = 0, len = comps.length; i < len; i++)
{
arr.push(comps[i].outerHTML);
}
output.innerHTML = arr.join("");
}
调用:
<button onclick="setValByTagName('d2',false)">getElementByName</button><br />
<button onclick="setValByTagName('p',true)">getElementsByTagName("p")</button>