Javascript 如何使按钮更改附近元素中的文本?

Javascript 如何使按钮更改附近元素中的文本?,javascript,jquery,twitter-bootstrap,dom,frontend,Javascript,Jquery,Twitter Bootstrap,Dom,Frontend,目前,我有一个脚本,可以使用jQuery在页面上以编程方式创建许多面板(是的,Twitter引导面板)。它们基本上都是一样的,只是在每一个里面都有一些动态文本,文本下面有一个按钮。有点像这样: <div class="panel panel-default" id="panel1"> <div class="panel-body">There's some dynamically-generated text here.</div> <d

目前,我有一个脚本,可以使用jQuery在页面上以编程方式创建许多面板(是的,Twitter引导面板)。它们基本上都是一样的,只是在每一个里面都有一些动态文本,文本下面有一个按钮。有点像这样:

<div class="panel panel-default" id="panel1">
    <div class="panel-body">There's some dynamically-generated text here.</div>
    <div class="panel-footer">
        <button class="btn btn-default btn-block">Click Here</button>
    </div>            
</div>
我知道这会奏效:

$("#panel1 .panel-body").text(updateContent())
因此,我尝试在构建ID的同一个循环中动态构建该选择器,但由于所有单引号、双引号和加号,我无法让javascript正确解析该行


我确信解决方案很简单,但我的眼睛交叉,看不清它。

假设
这是您的按钮元素,然后再试一次

$(this).closest('.panel').find('.panel-body').text("foobar")
使用
closest()
的优点是,您可以将按钮嵌套到任意深度,而无需更改处理程序

$(函数(){
$('.panel.btn')。单击(函数(){
$(this).closest('.panel').find('.panel body').text('foobar');
})
});

这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里

假设
这是您的按钮元素,然后重试

$(this).closest('.panel').find('.panel-body').text("foobar")
使用
closest()
的优点是,您可以将按钮嵌套到任意深度,而无需更改处理程序

$(函数(){
$('.panel.btn')。单击(函数(){
$(this).closest('.panel').find('.panel body').text('foobar');
})
});

这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里

假设
这是您的按钮元素,然后重试

$(this).closest('.panel').find('.panel-body').text("foobar")
使用
closest()
的优点是,您可以将按钮嵌套到任意深度,而无需更改处理程序

$(函数(){
$('.panel.btn')。单击(函数(){
$(this).closest('.panel').find('.panel body').text('foobar');
})
});

这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里

假设
这是您的按钮元素,然后重试

$(this).closest('.panel').find('.panel-body').text("foobar")
使用
closest()
的优点是,您可以将按钮嵌套到任意深度,而无需更改处理程序

$(函数(){
$('.panel.btn')。单击(函数(){
$(this).closest('.panel').find('.panel body').text('foobar');
})
});

这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里
这里有一些动态生成的文本。
点击这里
试试这个

$(this).parent().prev().html("updated content");
试试这个

$(this).parent().prev().html("updated content");
试试这个

$(this).parent().prev().html("updated content");
试试这个

$(this).parent().prev().html("updated content");

您非常接近,而不是直接使用
,您需要首先使用
最接近的
找到父面板:

$(".panel-body", $(this).closest('div.panel')).text(updateContent())

您非常接近,而不是直接使用
,您需要首先使用
最接近的
找到父面板:

$(".panel-body", $(this).closest('div.panel')).text(updateContent())

您非常接近,而不是直接使用
,您需要首先使用
最接近的
找到父面板:

$(".panel-body", $(this).closest('div.panel')).text(updateContent())

您非常接近,而不是直接使用
,您需要首先使用
最接近的
找到父面板:

$(".panel-body", $(this).closest('div.panel')).text(updateContent())

我怎么忘记了.prev()#noobmistakegahhhhhhhhh我怎么会忘记.prev()#noobmistakegahhhhhhhhh我怎么会忘记.prev()#noobmistakegahhhhhhhhh我怎么会忘记.prev()#努比木桩