不知道我为什么要返回[object Object]

时间:2015-09-27 19:40:44

标签: javascript jquery scope

我终于能够弄清楚如何从该元素中删除文本但保存嵌套在其中的按钮。

HTML:

<div id="modal" class="modal-animation">
    <p id="output">This app will go through some of your markup to determmine if it could be more accessible.  We will start by checking the alt tags on your images, seeing if they exist, or if the tags are empty!<br>
    <a id="appButtonNextChecker" class="button button-primary modal-button">lets get started!</a>
    </p>
</div>

JS:

EventUtility.addHandler(newBtnName, 'click', function(e) {

    var $noRemove = $('#output').find('#appButtonNextChecker'),
         text = 'flim-flam ' + $noRemove;
         console.log('next Checker, button!');

                $('#output').html(text);
});

然后我尝试用我保存的按钮连接一个新字符串,但令我惊讶的是我收到了[object Object]

我在某处读到这是一个范围问题,但我不确定这在哪里适用? 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

如果你做的.html( $noRemove )本来没问题,但是当你想要连接一个字符串时,你必须得到html(字符串)连接到字符串。 您无法连接字符串和对象。

使用

var text = 'flim-flam ' + $noRemove.html();

,以获取$noRemove代表的所有html:

var text = 'flim-flam ' + $('<div/>').html( $noRemove ).html();

或者:

var text = 'flim-flam ' + $noRemove[0].outerHTML;
//WARNING -- works only if $noRemove.length equals 1

答案 1 :(得分:0)

你想如何连接字符串和按钮?!你想把字符串和按钮的价值放在一起吗?

$ noRemove是一个对象,获取该消息是完全正常的。