如何使用jQuery返回<span>中的文本

时间:2017-04-15 02:35:21

标签: javascript jquery

这是代码,我是jQuery的初学者。 我在网上找到了这些代码,这是一份调查问卷。我想保存那些选定的选项,但我不知道该怎么做。

  1. &#34; $ .fn.jRadio =功能(设置)&#34;我不知道这个设置是什么。

  2. &#34; var options = $ .extend(_defaults,settings || {});&#34;什么是|| {}

  3. (function($){     &#39;使用严格的&#39;;

       // <label class="u-radio" data-name="radio1">
       //     <input name="radio1" type="radio">
       // </label>
       // <label class="u-radio" data-name="radio1">
         //   <input name="radio1" type="radio">
       // </label>
       // <label class="u-radio" data-name="radio2">
       //     <input name="radio2" type="radio" checked>
       // </label>
    
    
    $.fn.jRadio = function (settings) {
        /* 默认参数 */
        var _defaults = {
            checkedClass: "z-checked", // 选中状态类名
            onChange: function (element) {
    
            } // onchange回调,返回当前选中项DOM元素
        };
    
        var options = $.extend(_defaults, settings || {});
        var radios = this;
    
        radios.each(function () {
            var $radio = $(this);
            var _name = $(this).data("name");   // 组name值
    
            /*---- 初始化 ----*/
            // 是否选中以input:radio的选中状态为准,多个选中的话以最后一个为准
            if($radio.find('input[type="radio"]').is(':checked')) {
                var $otherRadios = radios.filter("[data-name='" + _name + "']").not($radio);
                $radio.addClass(options.checkedClass);
                $otherRadios.removeClass(options.checkedClass);
                $otherRadios.find('input[type="radio"]').prop('checked', false);
                //var str_ans = radios.filter('span[class="text"]').innerHTML
                //var $str_ans = $radio.find('span[class="text"]').prop("innerText")
    
            }
    
            /*---- 添加事件 ----*/
            $radio.on("change", function () {
                if (!$(this).hasClass(options.checkedClass)) {
                    $(this).addClass(options.checkedClass);
                    radios.filter("[data-name='" + _name + "']").not($(this)).removeClass(options.checkedClass); // 切换状态
                    options.onChange($(this));  // 回调
    
                    //alert($str_ans)
                }
            });
        });
    };
    
    /**
     * 复选框
     *
     * `Html`
        <label class="u-checkbox">
            <input name="checkbox" type="checkbox">
        </label>
     * `/Html`
     *
     * @param settings 用户设置参数
     */
    $.fn.jCheckbox = function (settings) {
        /* 默认参数 */
        var _defaults = {
            checkedClass: "z-checked", // 选中状态类名
            onChange: function (element) {} // onchange回调,返回当前选中项DOM元素组
        };
    
        var options = $.extend(_defaults, settings || {});
        var checkboxes = this;
    
        checkboxes.each(function () {
            var $checkbox = $(this);
    
            /*---- 初始化 ----*/
            // 是否选中以input:checkbox的选中状态为准
            if($checkbox.find('input[type="checkbox"]').is(':checked')) {
                $checkbox.addClass(options.checkedClass);
            } else {
                $checkbox.removeClass(options.checkedClass);
            }
    
            /*---- 添加事件 ----*/
            $checkbox.on("change", function () {
                $(this).toggleClass(options.checkedClass);
                options.onChange($(this));
            });
        });
    };
    

    })(jQuery的);

1 个答案:

答案 0 :(得分:0)

1)$.fn.jRadio = function (settings)创建一个jquery函数,可以像$('#elem').jRadio({})一样使用

2)var options = $.extend(_defaults, settings || {});" what is ||{}正在检查设置对象是否存在。如果不是,它将使用组合对象分配选项,如果设置和_defaults,否则它只会为选项分配_defaults

它将一个对象的内容合并到另一个对象。如果我们传递两个对象,则将第二个对象属性添加到第一个object / first参数。