Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery新元素在连接时生成[object]_Javascript_Jquery - Fatal编程技术网

Javascript Jquery新元素在连接时生成[object]

Javascript Jquery新元素在连接时生成[object],javascript,jquery,Javascript,Jquery,我试图在Jquery中使用一些属性创建一个新的锚标记并将其存储在变量中,但当我将其与其他变量连接并附加到Dom时,它给出了[OBJECT] JSFIDLE用于相同的: var a_name=“Sathwick Rao(sgmdev@gmail.com)^$^4083372345"; var_name=a_name.split(“(”)[0]; var_part1=a_name.split(“(”)[1]; var_email=_part1.split('))[0]; var htmlEleme

我试图在Jquery中使用一些属性创建一个新的锚标记并将其存储在变量中,但当我将其与其他变量连接并附加到Dom时,它给出了[OBJECT]

JSFIDLE用于相同的:

var a_name=“Sathwick Rao(sgmdev@gmail.com)^$^4083372345"; var_name=a_name.split(“(”)[0]; var_part1=a_name.split(“(”)[1]; var_email=_part1.split('))[0]; var htmlElement=$('('+'电子邮件+')).attr('href','mailto:'+'电子邮件); $('shara').html(_name+''+htmlElement);
不能将字符串与那样的对象连接在一起。请像这样分隔两条语句:


不能将字符串与这样的对象连接起来。请按如下方式分隔两条语句:


这是因为您试图将一个对象与字符串连接起来。因此,该对象通过其
toString
函数隐式转换为其字符串表示形式

例如

如果您想将元素的
outerHTML
与其他一些HTML字符串连接起来,这是可能的

$('#shara').html(_name + ' ' + htmlElement.prop('outerHTML'));
然而,在没有必要的时候,它不是最理想或最干净的方式

$('#shara').append($('<span>').addClass('name').text(_name).add(htmlElement));

这是因为您试图将一个对象与字符串连接起来。因此,该对象通过其
toString
函数隐式转换为其字符串表示形式

例如

如果您想将元素的
outerHTML
与其他一些HTML字符串连接起来,这是可能的

$('#shara').html(_name + ' ' + htmlElement.prop('outerHTML'));
然而,在没有必要的时候,它不是最理想或最干净的方式

$('#shara').append($('<span>').addClass('name').text(_name).add(htmlElement));

为了强制变量
htmlElement
存储字符串,我有时会对其进行如下处理

 var htmlElement = $('<a>('+_email+')</a>').attr('href','mailto:'+_email)+"";
 $('#shara').html(_name+' '+htmlElement);
var htmlElement=$('('+'电子邮件+')).attr('href','mailto:'+'电子邮件)+';
$('shara').html(_name+''+htmlElement);

为了强制变量
htmlElement
存储字符串,我有时会对其进行如下处理

 var htmlElement = $('<a>('+_email+')</a>').attr('href','mailto:'+_email)+"";
 $('#shara').html(_name+' '+htmlElement);
var htmlElement=$('('+'电子邮件+')).attr('href','mailto:'+'电子邮件)+';
$('shara').html(_name+''+htmlElement);

这将产生相同的不希望的结果。请查看我的答案。这将产生相同的不希望的结果。请查看我的答案。@SJ-B很高兴我能提供帮助。另一个答案可能较短,但它会导致两次DOM回流,效率不高。尽可能避免它们是一种很好的做法,即使您可能不这样做注意这个例子中有很多不同;)@SJ-B很高兴我能帮上忙。另一个答案可能更短,但是它会导致两个DOM回流,这不是很有效。最好尽量避免使用它们,即使在这种情况下您可能不会注意到有太大的差异;)最好避免2次DOM回流。链接DOM更改操作是一个很坏的习惯;)显然,这种情况不会影响性能,但是,当它是一个更大的应用程序的一部分,并且这种方法被多次使用时,它可能是有害的。链接DOM更改操作是一个很坏的习惯;)显然,这种情况不会影响性能,但是当它是一个更大的应用程序的一部分时,这种方法会被多次使用,这可能是有害的。
 var htmlElement = $('<a>('+_email+')</a>').attr('href','mailto:'+_email)+"";
 $('#shara').html(_name+' '+htmlElement);