这是我在控制台中使用dom选择器创建的foo:
foo
[<input type="text" maxlength="70" id="authCreateAcctUsernameInput" name="userName" autocomplete="off" autocapitalize="off" autocorrect="off">]
然后,在几分钟前刚问过的问题的背面,我了解到如果我想获取jquery对象的textContent,我必须使用.text()
。
Foo有一些兄弟姐妹:
<fieldset>
<label class="userName" for="authCreateAcctUsernameInput">Email Address</label>
<input type="text" maxlength="70" id="authCreateAcctUsernameInput" name="userName" autocomplete="off" autocapitalize="off" autocorrect="off">
<span id="authCreateAcctUsernameErrorTxt" class="errorMSG" style="display: block;">Please enter a valid email address.</span>
为了获得电子邮件地址&#34;来自Foo的sibling textContent我试过这个:
$(foo).parent().children()[0].text()
但是返回了TypeError: undefined is not a function
。
这是&#34;工作&#34;:
$(foo).parent().children()[0]
<label class="userName" for="authCreateAcctUsernameInput">Email Address</label>
返回元素。那么为什么我不能添加.text()
来获得我需要的东西,这就是字符串&#34;电子邮件地址&#34;?
答案 0 :(得分:6)
它本身并不“返回未定义”,呃,因为undefined()
无效而引发异常。
这是因为.children()[0]
(相当于.children().get(0)
)返回一个DOM元素,而不是jQuery对象,因此domElement.text
计算为undefined
。