有一个更好的方法吗 ? (多个if语句)

时间:2014-04-17 15:54:30

标签: jquery

我试图让jQuery检查一个链接是否有某个ID,id只会改变最后一个数字,有没有办法每次迭代一定数量的如果这样的陈述没有做手工检查吗?

有更好的方法吗?

我对jQuery / Javascript很新,但这对我来说似乎不对。

$(document).ready(function() {

  $(document).on('click', '.add-to-train', function(event) {

    var inspectedLink = $('a.inspected');

    if ($('a').find( '.inspected' )) {

      console.log( inspectedLink );

      if(inspectedLink.is('#product-1')) {
        console.log('Send info for Product 1');
      }
      if(inspectedLink.is('#product-2')) {
        console.log('Send info for Product 2');
      }
      if(inspectedLink.is('#product-3')) {
        console.log('Send info for Product 3');
      }
      if(inspectedLink.is('#product-4')) {
        console.log('Send info for Product 4');
      }
      if(inspectedLink.is('#product-5')) {
        console.log('Send info for Product 5');
      }
      if(inspectedLink.is('#product-6')) {
        console.log('Send info for Product 6');
      }
      if(inspectedLink.is('#product-7')) {
        console.log('Send info for Product 7');
      }
    }

  });

});

2 个答案:

答案 0 :(得分:4)

您可以直接从元素ID中获取数字,无需检查每个数字

$(document).ready(function () {

    $(document).on('click', '.add-to-train', function (event) {

        var inspectedLink = $('a.inspected');

        if ( inspectedLink.length ) {
            var id = inspectedLink.prop('id').split('-').pop();
            console.log('Send info for Product ' + id);
        }
    });
});

答案 1 :(得分:3)

使用元素'将您的值放入对象中。 id为其标识符:

var valsToLog = {
    "product-1":"Send info for Product 1", 
    "product-2":"Send info for Product 2"
} // etc

然后,当您需要log或任何您需要处理的值时:

console.log(valsToLog[inspectedLink.prop('id')])

注意您可能首先要检查以确保id作为对象中的标识符存在。