I'm using the html5 "data" attribute on a element, and I want to assign the attribute value to a variable only if it exists and if it's not empty:
var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';
but it doesn't work. I always get the default value...
Using a short circuit is simpler and more efficient:
var xxx = $(this).data('what') || 'default_value';
But your code should have worked anyway, assuming the data existed (as the commenter noted).
Looks like $(this) is not what you expect it to be. Other than that, the statement looks fine. Demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With