aboutsummaryrefslogtreecommitdiffstats
path: root/ui/widgets/checkboxradio.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/widgets/checkboxradio.js')
-rw-r--r--ui/widgets/checkboxradio.js21
1 files changed, 13 insertions, 8 deletions
diff --git a/ui/widgets/checkboxradio.js b/ui/widgets/checkboxradio.js
index b2537d292..afa4a446d 100644
--- a/ui/widgets/checkboxradio.js
+++ b/ui/widgets/checkboxradio.js
@@ -50,8 +50,7 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
},
_getCreateOptions: function() {
- var disabled, labels;
- var that = this;
+ var disabled, labels, labelContents;
var options = this._super() || {};
// We read the type here, because it makes more sense to throw a element type error first,
@@ -71,12 +70,18 @@ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
// We need to get the label text but this may also need to make sure it does not contain the
// input itself.
- this.label.contents().not( this.element[ 0 ] ).each( function() {
-
- // The label contents could be text, html, or a mix. We concat each element to get a
- // string representation of the label, without the input as part of it.
- that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;
- } );
+ // The label contents could be text, html, or a mix. We wrap all elements
+ // and read the wrapper's `innerHTML` to get a string representation of
+ // the label, without the input as part of it.
+ labelContents = this.label.contents().not( this.element[ 0 ] );
+
+ if ( labelContents.length ) {
+ this.originalLabel += labelContents
+ .clone()
+ .wrapAll( "<div></div>" )
+ .parent()
+ .html();
+ }
// Set the label option if we found label text
if ( this.originalLabel ) {