19 回答
TA贡献1806条经验 获得超5个赞
我理解能力有点差,好像没怎么完全理解你的意思o.0(学习js也不久),希望能帮到你
1 <script type="text/javascript"> 2 function list(id){ 3 var oDiv=document.getElementById(id); 4 var myname = oDiv.firstElementChild.innerHTML; 5 document.getElementById("CName").value=myname; 6 var myNumber = oDiv.firstElementChild.nextElementSibling.innerHTML; 7 document.getElementById('BName').value = myNumber; 8 var myBank = oDiv.lastElementChild.innerHTML; 9 document.getElementById('CNo').value = myBank; 10 } 11 </script>
TA贡献1827条经验 获得超4个赞
@shoulder11: <span>可以oDiv.firstElementChild.nextElementSibling.nextElementSibling.innerHTML;
或者oDiv.lastElementChild.previousElementSibling.innerHTML;
当然有多个子元素时,上述方法就不太合适可以考虑使用childNodes属性
第一个标签<img>:oDiv.childNodes[0] //IE
oDiv.childNodes[1] //其他浏览器会把元素之间的空白符也会算为子元素
第三个标签<span>:oDiv.childNodes[2] //IE
oDiv.childNodes[5] //其他浏览器
其他子元素可以以此类推;
TA贡献2080条经验 获得超4个赞
@shoulder11: 今天学习DOM扩展-专有扩展时,发现其中的children属性可以解决不同浏览器在处理空白符是的差异,所以上述的方法可以写成:
第一个标签<img>:oDiv.children[0];
第三个标签<span>:oDiv.children[2];
TA贡献1877条经验 获得超6个赞
@老板丶鱼丸粗面: 这样,我再去试试,太谢谢了。
TwT不过不好意思,圆豆没有给成你TwT,因为有个方法更加简单并且不需要给div设置id值,我最后用了他的方法。
但还是十分感谢!你也让我学到了很多~
我也都记下来了嘿嘿。
TA贡献1818条经验 获得超8个赞
document.getElementById('XXX').getElementsByTagName('span/strong')[0]
getElementXXX不止针对document哦
TA贡献1793条经验 获得超6个赞
document.getElementById('XXX').getElementsByTagName('span/strong')[0]
这样的话它得出来的是两个值吧?那要怎么接收它呢?
TA贡献1891条经验 获得超3个赞
其实你的js并没有什么问题,问题在于你的两个div的id都是相同的,那肯定只能一个能获取到了。
另外,你这样写太麻烦,用jquery非常简单
function list(id) {
var div = $("#" + id);
$("#CName").val(div.find("strong").text());
$("#BName").val(div.find("span").text());
$("#CNo").val(div.find("a").text());
}
添加回答
举报