私は次のhtmlを持っています:
_<div id="note">
<textarea id="textid" class="textclass">Text</textarea>
</div>
_
Textarea要素を取得するにはどうすればよいですか? document.getElementById("textid")
を使用できません
私は今このようにやっています:
_var note = document.getElementById("note");
var notetext = note.querySelector('#textid');
_
しかし、IE(8)では機能しません
他にどのようにそれを行うことができますか? jQueryは大丈夫です
ありがとう
JQueryに問題がない場合は、 find() を使用できます。基本的には、現在の方法と同じです。
$('#note').find('#textid');
JQueryセレクターを使用して、基本的に同じことを実現することもできます。
$('#note #textid');
これらのメソッドを使用して既にIDを持っているものを取得するのはちょっと奇妙ですが、実際に使用する方法ではないと仮定してこれらを提供しています。
補足として、IDはWebページ内で一意でなければなりません。同じ「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;
使用例:
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);
(Dwell in atom)
<div id="note">
<textarea id="textid" class="textclass">Text</textarea>
</div>
<script type="text/javascript">
var note = document.getElementById('textid').value;
alert(note);
</script>
JQueryを使用する
$('#note textarea');
あるいは単に
$('#textid');
$(selectedDOM).find();
選択したDOM内のすべてのdomオブジェクトを探す関数。つまり.
<div id="mainDiv">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<div id="innerDiv">
<a href="#">link</a>
<p>Paragraph 3</p>
</div>
</div>
ここに書いたら
$("#mainDiv").find("p");
tree p要素を一緒に取得します。反対側では、
$("#mainDiv").children("p");
ちょうど選択したDOMオブジェクトの子DOMで検索する関数。したがって、このコードではparagraph 1およびparagraph 2のみが得られます。ブラウザが不必要に進行するのを防ぐことは非常に有益です。