docs: function jq_fn_sub( mode, force_attr, params, merge_mode ) {
      if ( !is_string( params ) && typeof params !== 'object' ) {
        // force_attr not specified.
        merge_mode = params;
        params = force_attr;
        force_attr = undefined;
      }
      
      return this.each(function(){
        var that = $(this),
          
          // Get attribute specified, or default specified via $.elemUrlAttr.
          attr = force_attr || jq_elemUrlAttr()[ ( this.nodeName || '' ).toLowerCase() ] || '',
          
          // Get URL value.
          url = attr && that.attr( attr ) || '';
        
        // Update attribute with new URL.
        that.attr( attr, jq_param[ mode ]( url, params, merge_mode ) );
      });
      
    }