按类获取textarea并动态设置name

get textarea by class and set name dynamically

本文关键字:动态 设置 name textarea 获取      更新时间:2023-09-26

我真的不知道为什么我不能做这件看起来很愚蠢的事情。

我有一个模板,它可以动态解析一个js文件,该文件带有一个仅带有class属性的html文本区域。

我想做的是向它添加name属性,这样我就可以在php中使用$_POST获得它。

到目前为止,我已经尝试过:

var txt = $('.note-codable');
txt.prop('name','description');
$('.note-codable').attr('name','description');

以及其他似乎不起作用的选项。

这是常见添加的html:

<div class="note-editor">
  //other divs
  <textarea class="note-codable"></textarea>
</div>

当我这样做时(为了尝试代码):

var txt = $('.note-codable');
alert(txt);

结果是[对象][对象]

我错过了什么?为什么attr-name没有写?

试试这个,告诉我还有什么可以做的。

window.onload = function(){
  //get the element
  var txt = $('.note-codable');
  //set the name attribute
  txt.name = 'yourName';
  
  //get the name and console.log it
  console.log(txt.name);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="note-editor">
  //other divs
  <textarea class="note-codable"></textarea>
</div>

你似乎做得对。。。为了清楚起见,这里有一个例子。

$(function() {
  var $el = $("#example");
  var $out = $("#output");
  $out.append("<p>Name is: " + $el.attr('name') + "</p>");
  $el.attr('name', 'description');
  $out.append("<p>Name is: " + $el.attr('name') + "</p>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="example"></textarea>
<div id="output"></div>

您的代码正在我的端上运行:名称是动态设置的。您从警报中获得[object object],因为您返回的是文本框本身,而不是其内容或名称属性的值。

假设您希望将名称放入文本框中,而不是作为属性添加,则应该使用txt.val('your name here')设置它。

var txt = $('.note-codable');
txt.attr('name', 'description');
console.log(txt.get(0));
txt.val(
  'html: ' + txt.parent().html().trim() + ''n' +
  'name: ' + txt.attr('name')
);
textarea {
height: 100px;
width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="note-editor">
  <textarea class="note-codable"></textarea>
</div>

如果alertobject(就像jQuery选择器将返回的一样),它将不会显示信息。它将始终读取[object Object]。使用console.log将是更好的阅读方式。或者,如果只想测试name属性是否真的被应用,这应该是诀窍。

var txt = $('.note-codable').attr('name'); alert(txt);

假设jQuery成功,它应该读取description