我真的不知道为什么我不能做这个显然很傻的事情。
我有一个模板只使用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名字不写?答案 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