jquery输出id显示为[object object]
var str = prompt("What is your name?");
var str1=$(str).html('<b>'+str+'</b>');
alert(str1);
通过上面的代码,我得到了[object object]
作为输出。请帮忙jquery输出id显示为[object object]
alert(str1.html());
就是你所追求的。
在jquery的每个函数返回一个jquery对象,以便
.html('<b>'+str+'</b>')
返回一个对象,而不是在元件内部的文本。
alert()。text();什么应该警报返回?你的意思是alert(str1.text()); – DanielB 2011-05-06 08:17:30
我想你的意思是'alert(str1.text());' – 2011-05-06 08:18:15
对不起。 Updated – 2011-05-06 08:18:22
这是正确的,因为你要设置的HTML,然后该函数返回jQuery对象
var str1=$(str).html('<b>'+str+'</b>').html();
现在STR1将有HTML字符串。
编辑: 但是,DarthJDG指出正确地将一个字符串(返回值为prompt()
)包装到一个jQuery对象中,并且将一些HTML元素打包成一个jQuery对象并没有什么意思。
陈述$(str).html('<b>'+str+'</b>');
正在设置html
的$(str)
,然后从该呼叫返回$(str)
(用于链接目的)。
因为我不完全确定你想要达到的目标,所以我拒绝提出一个解决方案。你能否在你的问题上更明确一些?
我需要将提示文本转换为粗体并显示到textarea框中 – bhuvana 2011-05-09 06:59:12
是的,这正是你应该期望的。通过将参数传递给.html()
,即可调用返回jQuery
(即对象)的方法。
相反,如果你想要回(HTML)值元素,你应该alert(str1.html())
,从而invoking the method它返回一个string。
你应该这样做:
alert($(str).html());
你的代码是行不通的,因为$(str).html('<b>'+str+'</b>');
返回一个jQuery对象,而不是一个字符串。
干杯
首先,让我们来看看了html()
jQuery的API中:
它有两个变化。如果你传递一个参数,方法签名是这样的:
.html(htmlString) Returns: jQuery
所以它返回一个jQuery
对象。对象没有任何有趣的内容显示在警报内。现在,你可以用代表DOM节点的jQuery对象做什么?那么,你可以read back their HTML code:
alert(myNode.html());
...或者你可以read their plain text value:
alert(myNode.text());
现在,让我们看看你的代码:
var str = prompt("What is your name?");
由于prompt()返回一个字符串(如果用户键入的东西,打OK)或null
(如果用户击中取消),str
将是任意字符串或null
。
var str1=$(str)
你正在用任意字符串调用jQuery,所以你会得到一个任意的jQuery对象。如果用户输入john
,您将运行$("john")
。这意味着:匹配包含<john></john>
标签的任何元素。如果用户输入<h1>Hi</h1>
,您将创建第一级标题。等等...
.html('<b>'+str+'</b>');
现在你选择任何你在第一步中获得,并告诉jQuery来其HTML更改为某个任意内容:.html("<b>john</b>")
或.html("<b><h1>Hi</h1></b>")
...
alert(str1);
.. 。到目前为止我们没有什么有趣的东西;-)
Alvaro,感谢这么长的响应!我正在寻找一些能够将jQuery对象转换为带有超链接的html表格,这些超链接深入了解jQuery对象中的方法和对象。 – 2011-06-11 16:25:41
你究竟想要达到什么目的? – DarthJDG 2011-05-06 08:15:02
jQuery适用于HTML/DOM,而不是任意字符串... – 2011-05-06 09:31:52