我正在努力使用 jQuery。我想编写一个脚本来检查单击该按钮时与该按钮共享同一父项(列表项)的文本区域是否为只读。这是HTML:
...
<li>
<h1>Title</h1>
<button type="button" onclick="javascript:confirmDelete();">Delete</button>
<button type="button" onclick="javascript:toggle();">Toggle</button>
<textarea class="readOnly" readonly="true">Some text</textarea>
</li>
...
和脚本:
<script language="JavaScript">
<!--
...
function toggle()
{
var textArea = $(this).parent("li").children("textarea");
var isReadOnly = textArea.attr("readonly");
if (isReadOnly == "true") {
alert('It\'s read-only.');
} else {
alert('It\'s not read-only.');
}
}
//-->
</script>
看来我无法通过var textArea = ...
更新1:
好的,为了帮助自己分析问题,我分解了选择:
...
var btn = $(this);
console.log(btn); //returns value, but not sure what exactly
var li = btn.parent();
console.log(li); //returns value, but not sure what exactly
var textArea = li.children('textarea');
console.log(textArea.prop('tagName')); //returns unidentified
所以,有错误。我似乎无法理解实际出了什么问题,因为如果我从调试中获得的所有输出都是一个对象(我什至不知道它代表什么;它是一个元素还是数组),我无法真正学到很多东西。 ..) 或unidentified
. jQuery 并不完全直观。