按类获取textarea并动态设置名称

时间:2015-11-17 02:59:36

标签: javascript php jquery html

我真的不知道为什么我不能做这个显然很傻的事情。

我有一个模板只使用class属性动态解析带有html textarea的js文件。

我想要做的是为它添加name属性,以便我可以在PHP中使用$ _POST获取它。

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

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

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

这是在dinamycally添加的html:

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

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

{{1}}

结果是[object] [object]

我错过了什么?为什么attr名字不写?

4 个答案:

答案 0 :(得分:1)

试试这个,告诉我我还能做什么。

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>

答案 1 :(得分:0)

你好像做得对......这是一个清晰的例子。

$(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>

答案 2 :(得分:0)

您的代码正在我的最终:名称是动态设置的。您正在从警报中获取[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>

答案 3 :(得分:0)

如果你alert object(就像jQuery选择器将返回的那样),它将不会显示信息。它将始终显示为[object Object]。使用console.log将是一种更好的阅读方式。或者,如果只是想测试name属性是否实际应用,这应该是技巧。

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

假设jQuery成功,它应该是description