Bur*_*jua 29 javascript jquery element
我有以下html:
<div id="note">
<textarea id="textid" class="textclass">Text</textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得textarea元素?我不能用document.getElementById("textid")它
我现在这样做:
var note = document.getElementById("note");
var notetext = note.querySelector('#textid');
Run Code Online (Sandbox Code Playgroud)
但它在IE中不起作用(8)
我怎么能这样做?jQuery没问题
谢谢
Khe*_*hez 50
如果jQuery没问题,你可以使用find().它基本上等同于你现在这样做的方式.
$('#note').find('#textid');
Run Code Online (Sandbox Code Playgroud)
您还可以使用jQuery选择器基本上实现相同的功能:
$('#note #textid');
Run Code Online (Sandbox Code Playgroud)
使用这些方法来得到的东西,已经有一ID是那样的陌生,但我提供这些假设这不是真的,你计划如何使用它.
另外,您应该知道ID在您的网页中应该是唯一的.如果您计划使用具有相同"ID"的多个元素,请考虑使用特定的类名.
这是一个纯JavaScript解决方案(没有jQuery)
var _Utils = function ()
{
this.findChildById = function (element, childID, isSearchInnerDescendant) // isSearchInnerDescendant <= true for search in inner childern
{
var retElement = null;
var lstChildren = isSearchInnerDescendant ? Utils.getAllDescendant(element) : element.childNodes;
for (var i = 0; i < lstChildren.length; i++)
{
if (lstChildren[i].id == childID)
{
retElement = lstChildren[i];
break;
}
}
return retElement;
}
this.getAllDescendant = function (element, lstChildrenNodes)
{
lstChildrenNodes = lstChildrenNodes ? lstChildrenNodes : [];
var lstChildren = element.childNodes;
for (var i = 0; i < lstChildren.length; i++)
{
if (lstChildren[i].nodeType == 1) // 1 is 'ELEMENT_NODE'
{
lstChildrenNodes.push(lstChildren[i]);
lstChildrenNodes = Utils.getAllDescendant(lstChildren[i], lstChildrenNodes);
}
}
return lstChildrenNodes;
}
}
var Utils = new _Utils;
Run Code Online (Sandbox Code Playgroud)
使用示例:
var myDiv = document.createElement("div");
myDiv.innerHTML = "<table id='tableToolbar'>" +
"<tr>" +
"<td>" +
"<div id='divIdToSearch'>" +
"</div>" +
"</td>" +
"</tr>" +
"</table>";
var divToSearch = Utils.findChildById(myDiv, "divIdToSearch", true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104609 次 |
| 最近记录: |