Javascript 如何选择textarea并检查它是否为只读?

Javascript 如何选择textarea并检查它是否为只读?,javascript,jquery,html,Javascript,Jquery,Html,我正在努力使用jQuery。我想写一个脚本,检查当单击按钮时,与按钮共享同一父项(列表项)的文本区域是否为只读。以下是HTML: ... <li> <h1>Title</h1> <button type="button" onclick="javascript:confirmDelete();">Delete</button> <button type="button" onclick="javascript:togg

我正在努力使用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>
...

所以,这是一个错误。我似乎无法理解到底是什么错了,因为如果我从调试中得到的所有输出都是一个对象(我甚至不知道它代表什么;它是一个元素还是数组…)或
未识别的
,我就无法真正了解多少。jQuery并不十分直观。

该属性区分大小写。试试看

var isReadOnly = textArea.attr("readOnly");

如果这是您可能唯一需要的:

...find("textarea")[0];
不是

或者简单地
$(this).兄弟姐妹(“textarea”)[0]

或者直接选择

var mylist = $(this).siblings("textarea.readOnly");

if (mylist.length > 0)//true if it is

这里有一些错误

首先,当属性“readonly”处于活动状态时,它没有“true”值,而是“readonly”值

另一方面,如果通过onclick调用函数(我不是100%确定),则不能使用$(this)。我建议您(在给触发按钮提供一些ID或任何识别它的东西之后):


当你说“不能过去…”时,你应该具体地说发生了什么。分解语句,直到找出失败的地方:var ta=$(this);ta=ta.母公司(“li”);ta=ta.儿童('textarea');这将帮助您调试它。。。我会使用textArea.getAttribute('readonly');它可能不会返回真或假-在控制台中检查它以查看。如何使用控制台?我对jQuery几乎一无所知。。。谢谢谷歌搜索“Firebug”或Chrome开发者工具。在学习jQuery之前,你需要先了解如何调试JS。谢谢你,我很感激!我意识到我在选择标签时有问题。如何从单击的按钮开始选择文本区域?
$(this).sides('textarea')[0]正在返回未识别的
。我的问题的根源似乎是我无法选择文本区域。如果您将
var textarea
更改为
var mytextArea
,您的结果是否不同?
...find("textarea")[0];
...children("textarea");
var mylist = $(this).siblings("textarea.readOnly");

if (mylist.length > 0)//true if it is
$(function() {

  $("button#my-button").bind("click", function() {
    if ($(this).siblings("textarea").attr("readonly") == "readonly") {
      alert("It's readonly");
    } else {
      alert ("It's not");
    }
  });

});