var str = prompt("What is your name?");
var str1=$(str).html('<b>'+str+'</b>');
alert(str1);通过上面的代码,我得到了[object object]作为输出。请帮帮忙
发布于 2011-05-06 16:14:20
alert(str1.html()); 就是你要找的。
jquery中的每个函数都返回一个jquery对象,因此
.html('<b>'+str+'</b>') 返回一个对象,而不是元素内的文本。
发布于 2011-05-06 16:32:22
首先,让我们在jQuery接口中查找html():
它有两个变体。如果传递参数,方法签名是这样的:
.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 (如果用户单击Cancel),因此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);..。到目前为止,我们没有得到任何有趣的东西;-)
发布于 2011-05-06 16:15:25
这是正确的,因为您正在设置超文本标记语言,然后函数将返回jQuery对象
var str1=$(str).html('<b>'+str+'</b>').html();现在str1将拥有超文本标记语言字符串。
编辑:但正如DarthJDG指出的那样,正确地将一个字符串(prompt()的返回值)包装到一个jQuery对象中并设置一些超文本标记语言并没有什么实际意义。
https://stackoverflow.com/questions/5908592
复制相似问题