Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery根据输入显示和隐藏元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 使用Jquery根据输入显示和隐藏元素

Javascript 使用Jquery根据输入显示和隐藏元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我一直在尝试创建一个表单,它会根据用户条目的不同而变化。到目前为止,我已经成功地使用无线电输入来更改要显示的内容,但是我在编辑JS以使用下拉菜单时遇到了问题 HTML Javascript 我知道JQuery正在查找正确的元素,并且正在更改它们的显示,但它从未更改显示以使它们可见。我认为问题可能是JS没有正确地从选项的属性中获取数据类型变量 我希望JQuery按预期工作,并根据用户选择显示正确的div 我怎样才能修改代码来做到这一点?谢谢你的帮助。你现在得到了: var type = $(thi

我一直在尝试创建一个表单,它会根据用户条目的不同而变化。到目前为止,我已经成功地使用无线电输入来更改要显示的内容,但是我在编辑JS以使用下拉菜单时遇到了问题

HTML Javascript 我知道JQuery正在查找正确的元素,并且正在更改它们的显示,但它从未更改显示以使它们可见。我认为问题可能是JS没有正确地从选项的属性中获取数据类型变量

我希望JQuery按预期工作,并根据用户选择显示正确的div

我怎样才能修改代码来做到这一点?谢谢你的帮助。

你现在得到了:

var type = $(this).attr('data-type');
由于函数是在上调用的,所以可以选择定义的数据类型属性,而不是从中选择

因此,您需要找到所选的:

检查一下

[编辑]

如果要简化代码,可以使用以下方法:

$(function () {
    $('.show-and-hide-content select').on('change', function() {
        $(this).parent().
            find('.content').hide()
            .filter('.content-' + $(this).find('option:selected').attr('data-type') ).show();
    });
});
.

您现在可以:

var type = $(this).attr('data-type');
由于函数是在上调用的,所以可以选择定义的数据类型属性,而不是从中选择

因此,您需要找到所选的:

检查一下

[编辑]

如果要简化代码,可以使用以下方法:

$(function () {
    $('.show-and-hide-content select').on('change', function() {
        $(this).parent().
            find('.content').hide()
            .filter('.content-' + $(this).find('option:selected').attr('data-type') ).show();
    });
});
.

或将您选择的数据类型更改为value和use

或者将“选择数据类型”更改为“值和使用”

试试这个

$(function () {
    $('#select').on('change', function () {
        var selctedval  = $(this).val();
        $('.content').hide();
        $('.content-' + selctedval).show();
    });
});
试试这个

$(function () {
    $('#select').on('change', function () {
        var selctedval  = $(this).val();
        $('.content').hide();
        $('.content-' + selctedval).show();
    });
});

这将使用数据类型属性中的任何值,并将其与消息中的内容类相匹配。如果没有匹配的消息,则不会显示任何消息

$('.show-and-hide-content select').on('change', function(){
    var selected = $(this).find('option:selected').data('type');
    $('.content').addClass('hidden');
    $('.content-' + selected).removeClass('hidden');
});

这是一个

它将使用数据类型属性中的任何值,并将其与消息中的内容类相匹配。如果没有匹配的消息,则不会显示任何消息

$('.show-and-hide-content select').on('change', function(){
    var selected = $(this).find('option:selected').data('type');
    $('.content').addClass('hidden');
    $('.content-' + selected).removeClass('hidden');
});

感谢您指出这一点。这样做应该会清理代码。感谢您指出这一点。这样做应该会清理代码。
$('.show-and-hide-content select').on('change', function(){
    var selected = $(this).find('option:selected').data('type');
    $('.content').addClass('hidden');
    $('.content-' + selected).removeClass('hidden');
});