0

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.

9
  • 1
    My first recommendation would be to move all of your echo'd Javascript code outside of server tags to make it easier to read. Commented Mar 30, 2010 at 20:09
  • 4
    it would be nicer if you post what you've already tried, so we can tell you what's wrong... Commented Mar 30, 2010 at 20:11
  • 2
    @j - riiiight, like he/she tried anything... Commented Mar 30, 2010 at 20:15
  • Have edited the part I would like to convert. Commented Mar 30, 2010 at 20:15
  • 1
    @Russ - Take a look at the first answer, "readable" is a relative term :) Commented Mar 30, 2010 at 20:35

3 Answers 3

4
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

Just a note: in the last line, a direct conversion would be to override the class name. But whatever works ;)
0

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

0
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

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.