我想使用一个textarea元素的值,但我无法得到它。
function postComment(element) {
const content = element.previousSibling.value;
console.log(content);
}
<form action="" class="comment-editor">
<div class="form-group">
<textarea class="form-control" name="" id="someid" rows="4"></textarea>
<button type="button" class="btn btn-primary my-2" onClick="postComment(this)">Comment</button>
</div>
</form>
它给 undefined
输出
你可以试试下面的代码
function postComment(element) {
const content = element.parentNode.firstElementChild.value
console.log(content);
return false;
}
<form action="" class="comment-editor">
<div class="form-group">
<textarea class="form-control" name="" id="someid" rows="4"></textarea>
<button type="button" class="btn btn-primary my-2" onClick="return postComment(this)">Comment</button>
</div>
</form>
function postComment(element) {
const content = element.previousElementSibling.value;
console.log(content);
}
<form action="" class="comment-editor">
<div class="form-group">
<textarea class="form-control" name="" id="someid" rows="4"></textarea>
<button type="button" class="btn btn-primary my-2" onClick="postComment(this)">Comment</button>
</div>
</form>
你的问题是,你使用 previousSibling
该 previousElementSibling
.
由于您已经有了一个ID,用于 <input>
字段,我会用下面的内容代替。
function postComment() {
const content = document.getElementByID("someid").value;
console.log(content);
}
而且这里不需要参数
onClick="postComment();"
你可以在你的代码中通过这样的修改来获取值。
const content = document.querySelector("#someid").value;