I have the following JavaScript code which I like to convert to jQuery but has no luck.
var mySplitResult = xvotesString[htmlid].split('~');
target3 = document.getElementById ('xvote-' + htmlid);
target3.style.width = mySplitResult[0] + 'px';
if (target4 = document.getElementById ('mnma-' + htmlid));
target4.innerHTML = mySplitResult[1];;
if (target5 = document.getElementById ('mnmb-' + htmlid));
target5.innerHTML = mySplitResult[2];;
if (target6 = document.getElementById ('mnmc-' + htmlid));
target6.style.display='none';;
if (target6 = document.getElementById ('mnmd-' + htmlid));
target6.style.display='block';
target7 = document.getElementById ('xvotes-' + htmlid);
target7.className = 'star-rating-noh';
Any help is greatly appreciated.
3 Answers 3
var mySplitResult = xvotesString[htmlid].split('~');
$('#xvote-' + htmlid).width(mySplitResult[0] + 'px');
$('#mnma-' + htmlid).html(mySplitResult[1]);
$('#mnmb-' + htmlid).html(mySplitResult[2]);
$('#mnmc-' + htmlid).hide();
$('#mnmd-' + htmlid).show();
$('#xvotes-' + htmlid).addClass('star-rating-noh');
Sign up to request clarification or add additional context in comments.
1 Comment
Felix Kling
Just a note: in the last line, a direct conversion would be to override the class name. But whatever works ;)
Convert to more succinct JavaScript?
var results = xvotesString[htmlid].split('~'),
elem = function elem(prefix) {
return document.getElementById(prefix + htmlid);
}
if(var t3 = elem('xvote-'))
t3.style.width = results[0] + 'px';
if(var t4 = elem('mnma-'))
t4.innerHTML = results[1];
if(var t5 = elem('mnma-'))
t5.innerHTML = results[2];
if(var t6 = elem('mnmc-'))
t6.style.display='none';
if(t6 = elem('mnmd-'))
t6.style.display='block';
if(var t7 = elem('xvotes-'))
t7.className += ' star-rating-noh';
Comments
var mySplitResult = xvotesString[htmlid].split('~');
$('#xvote-' + htmlid).css('width', mySplitResult[0] + 'px');
if ($('#mnma-' + htmlid).length > 0);
$('#mnma-' + htmlid).html(mySplitResult[1]);
if ($('#mnmb-' + htmlid).length > 0);
$('#mnmb-' + htmlid).html(mySplitResult[2]);
if ($('#mnmc-' + htmlid).length > 0);
$('#mnmc-' + htmlid).css('display', 'none');
if ($('#mnmd-' + htmlid).length > 0);
$('#mnmd-' + htmlid).css('display', 'block');
$('#xvotes-' + htmlid).addClass('star-rating-noh');
or
var mySplitResult = xvotesString[htmlid].split('~'),
target3 = $('#xvote-' + htmlid),
target4 = $('#mnma-' + htmlid),
target5 = $('#mnmb-' + htmlid),
target6 = $('#mnmc-' + htmlid),
target0 = $('#mnmd-' + htmlid), //replace target6
target7 = $('#xvotes-' + htmlid);
$(target3).css('width', mySplitResult[0] + 'px');
if ($(target4).length > 0);
$(target4).html(mySplitResult[1]);
if ($(target5).length > 0);
$(target5).html(mySplitResult[2]);
if ($(target6).length > 0);
$(target6).css('display', 'none');
if ($(target0).length > 0);
$(target0).css('display', 'block');
$(target7).addClass('star-rating-noh');
1 Comment
Russ Cam
There's no need to check the length of the returned jQuery object - calling a method on a jQuery object with no matches (i.e. an "empty" jQuery object) won't throw an error.
lang-js
echo'd Javascript code outside of server tags to make it easier to read.