jQuery替换元素的文本

时间:2010-11-09 15:10:06

标签: javascript asp.net jquery

您好 我试图在jQuery下拉框中替换div。要替换的值是下拉框的“标题”,当选择任何内容时,“选择替代:”。然后,当用户从下拉列表中选择替代项时,该替代项会突出显示并替换“选择替代项:”,以便用户可以在关闭下拉列表时看到他们选择的内容。

我该怎么做? HTML:

    <div class="step_content">
        <div class="vertical_text">Choose alternative</div>
        <div class="vertical_content dropdown_fade">
            <div class="menu_corner top_left_vertical"></div>
            <div class="menu_corner top_right_vertical"></div>                                                                      
            <div class="button_slide" rel="slide1">Pick alternative:</div>
            <div class="content_slide slide1">
                <input id="Button19" class="button_vertical damage_button" type="button" value="Alternative 1" size="10px" />
                <input id="Button20" class="button_vertical damage_button" type="button" value="Alternative 2" />  

            </div>                                            
            <div class="menu_corner bottom_left_vertical"></div>
            <div class="menu_corner bottom_right_vertical"></div>                   
        </div>                
    </div>             

我有以下几行javaScript。我不知道如何继续这样做。

$(function () {
        $('.damage_button').click(function () {
            $('.button_slide').replaceWith("<div class='some_class' >" + $(this) + "</div>");
        });
});

我得到它来替换我想要替换的内容,但它只显示“[Object object]”。 谢谢你的阅读!

* 粗体 *编辑:有人可以再次投票这个问题,以便我可以开始提出您的答案吗?我觉得你值得称赞!

2 个答案:

答案 0 :(得分:1)

$(function () {
        $('.damage_button').click(function () {
            $('.button_slide').replaceWith("<div class='some_class' >" + $(this).val() + "</div>");
        });
});

INPUT元素使用val()(按钮是INPUT元素),非INPUT使用html()text()元件。

你得到[Object object]的原因是因为当你只是做$(this)并将它连接到一个字符串时,你正在调用jQuery对象的toString(),它不会返回你想要的东西。您需要使用val()获得的按钮的实际文本。

答案 1 :(得分:1)

使用.val()获取点击的<input>元素的值,如下所示:

$(function () {
  $('.damage_button').click(function () {
    $('.button_slide').replaceWith("<div class='some_class' >" + $(this).val() + "</div>");
  });
});

在这种情况下,this引用您想要的<input>,但$(this)是一个jQuery对象...它提供.toString() [Object object],你希望.val()获得价值。