Adam Rackis
Adam Rackis

Reputation: 83356

Better jQuery statement?

I'm trying to get the (comma delimited) string of values inside of hdnCheckedPhoneNumbers, take each value, and do something with it. This works, but it feels a bit dirty.

    $($(".hdnCheckedPhoneNumbers").val().split(",")).each(function(index, val) {
        $(".phoneCB[data-rowNumber='" + val + "']").children().attr("checked", "checked");
    });

Upvotes: 0

Views: 62

Answers (2)

Miguel Galante
Miguel Galante

Reputation: 1699

Maybe this way....

var checkedNumbers  = $(".hdnCheckedPhoneNumbers").val().split(",");

var processCheckedNumbers = function(index, val) {
        $(".phoneCB[data-rowNumber='" + val + "']").children().attr("checked", "checked");
 }

$(checkedNumbers).each(processCheckedNumbers);

Upvotes: 1

simshaun
simshaun

Reputation: 21466

Slightly optimized (but could be optimized further, specifically by using a for loop instead of jQuery.each()):

var numbers = $(".hdnCheckedPhoneNumbers").val().split(","),
    $phoneCb = $(".phoneCB");

$(numbers).each(function(index, val) {
    $phoneCb.filter("[data-rowNumber='" + val + "']").children().attr("checked", "checked");
});

Upvotes: 1

Related Questions