我正在尝试将function ShowReversalsDetailedView() {
$.ajax(
{
url: "/MyController/RedirectToView/",
type: 'post',
dataType: "html",
contentType: 'application/json; charset=utf-8',
success: function (result) {
$(".modal-content").html(result);
}
})
}
文本附加到Kendo().Window()
,但只显示每个button
下最后单击的span
的值。
因此,无论单击了什么button
文本,都将其.item
button
并用下一个按下的append
文本替换该值,依此类推。
span
button
答案 0 :(得分:3)
我会像这样构造您的html,然后指定范围并使用.text()
更新它。我在<span>
标记内使用了<p>
,因为如果您尝试更新整个span标记,它也会删除total:
文本。我还通过删除var x = $(this).closest(".item");
来对jquery进行了一些修整,因为在这种情况下我们不需要它(不确定其中的作用)。
$('#value span').text(y);
$('.button').on('click', function() {
var y = $(this).text();
$('#value span').text(y);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="list">
<div class="item">
<div>Item 1</div>
<button class="button">50</button>
</div>
<div class="item">
<div>Item 2</div>
<button class="button">30</button>
</div>
<div class="item">
<div>Item 3</div>
<button class="button">70</button>
</div>
</div>
<p id="value">Total: (<span>0</span>)</p>
答案 1 :(得分:2)
问题:
您要jQuery执行的操作是为每个对象的文本值附加一个'.button'类,因为所有三个按钮都具有该类,因此无论哪个按钮,您都将获取每个按钮的文本值单击。
解决方案:
使用“ this”关键字!在点击侦听器的上下文中,“ this”关键字将引用触发事件的控件。换句话说,被单击的控件。现在,每次点击只会附加一个按钮的值。
例如:
$(".list").on("click", ".button", function () {
var y = $(this).text();
$('#value').append('(' + y + ')');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="list">
<div class="item">
<div>Item 1</div>
<button class="button">50</button>
</div>
<div class="item">
<div>Item 2</div>
<button class="button">30</button>
</div>
<div class="item">
<div>Item 3</div>
<button class="button">70</button>
</div>
</div>
<span id="value">Total:</span>
希望有帮助!
** -EDIT- **
要在每次单击时替换该值,您想使用.text()方法将值插入到控件的text属性中。由于您当前有“总计”,因此您还需要以编程方式将其插入,或者像我一样将其移动到span元素之外。
$(".list").on("click", ".button", function () {
var y = $(this).text();
// Use .text instead of .append.
$('#value').text('(' + y + ')');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="list">
<div class="item">
<div>Item 1</div>
<button class="button">50</button>
</div>
<div class="item">
<div>Item 2</div>
<button class="button">30</button>
</div>
<div class="item">
<div>Item 3</div>
<button class="button">70</button>
</div>
</div>
<div>Total: <span id="value"></span></div>
答案 2 :(得分:0)
也许只是替换
$('#value').append('(' + y + ')');
使用
$('#value').html('(Total:' + y + ')');