首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery .prepend()不工作

jQuery .prepend()不工作
EN

Stack Overflow用户
提问于 2014-02-15 21:41:47
回答 5查看 4.3K关注 0票数 0

我正在尝试从select中预置一个选项值。我需要输出以大写"K“开头。这是我的jQuery:

代码语言:javascript
复制
    $(document).ready(function () {
$(".dialogbox").dialog({
    modal: true,
    autoOpen: false
});
$(".dropdown").change(function () {
    $(".dialogbox").dialog("open");
    $(".dialogbox").change("puff");
});
$('select.dropdown').change(function () {
    var capacityValue = $('select.dropdown').find(':selected').data('capacity').toUpperCase();   
    $('.dialogbox').val(capacityValue);
});

});

这是我的小提琴

我试过了

代码语言:javascript
复制
$('.dialogbox').val(capacityValue).prepend( 'K' );

但这似乎行不通。我看到的所有例子都表明这是可行的。提前谢谢你的帮助。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-15 21:57:33

您的代码有很多问题:

(1) .prepend()用于将一个元素作为另一个元素的子元素。你想用字符串来称呼它。我认为您希望使用字符串连接:

代码语言:javascript
复制
"K" + $('select.dropdown').find(':selected').data('capacity')

(2)下拉列表的"name“属性在html中缺少一个=

代码语言:javascript
复制
<select class='dropdown' name='dropdown'>

(3) class="dialogbox"有两个元素,因此下面打开两个对话框:

代码语言:javascript
复制
$(".dialogbox").dialog("open");

您可以使用两个不同的类名,或者在选择器中包含元素类型来区分它们:'div.dialogbox''input.dialogbox'

(4)将两个change事件处理程序附加到下拉列表。他们接到的订单没有保证。你应该把它们组合成一个。

(5)应该使用.text().html()将文本插入元素,而不是.val()。使用.val()只是为了设置输入元素的值。

(6)可以通过包括show选项来建立打开对话框的动画效果:

代码语言:javascript
复制
show: 'puff'

或者:

代码语言:javascript
复制
show: { effect: 'puff', duration: 1000 }

尝试以下几点:

代码语言:javascript
复制
$(".dropdown").change(function () {
    var capacityValue = "K" +  $(this).find(':selected').data('capacity').toUpperCase();

    $('div.dialogbox').text(capacityValue).dialog("open");

    $('input.dialogbox').val(capacityValue);
});

小提琴

票数 2
EN

Stack Overflow用户

发布于 2014-02-15 21:47:25

.prepend()是在dom元素前面加上一个元素。在你的情况下,试着像这样把文字放在前面,

代码语言:javascript
复制
var capacityValue = "K"+ $('select.dropdown').find(':selected').data('capacity');

更新的小提琴

票数 0
EN

Stack Overflow用户

发布于 2014-02-15 21:53:52

我看到你的小提琴了,我想你不知道你是怎么做的。capacityValue,它只是属性值。

.prepend

描述:将参数指定的内容插入到匹配元素集中每个元素的开头。

http://api.jquery.com/prepend/

capacityValue它不是元素,它是对象字符串,不是更多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21804007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档