Javascript 将脚本从js重写为jquery

Javascript 将脚本从js重写为jquery,javascript,jquery,Javascript,Jquery,我有一个脚本,我想使更多的防弹。此时,页面会断开,因为找不到类框提示。要做到这一点并且不抛出错误,我如何将下面的代码重写到jquery中,以获得与js相同的结果 function applyRecommendedSleeveLength(selectedVal) { if (selectedVal !== undefined) { var recommendedVal = map[selectedVal.trim()]; var selected = $('.attribute__swatc

我有一个脚本,我想使更多的防弹。此时,页面会断开,因为找不到类框提示。要做到这一点并且不抛出错误,我如何将下面的代码重写到jquery中,以获得与js相同的结果

function applyRecommendedSleeveLength(selectedVal) {
  if (selectedVal !== undefined) {
var recommendedVal = map[selectedVal.trim()];
var selected = $('.attribute__swatch--selected:first          div').text().trim();
if (recommendedVal === null || recommendedVal === undefined) {
  selectedVal = $('.attribute__swatch--selected:first   div').text().trim();
  recommendedVal = map[selectedVal.trim()];
}

if (selected === null || selected === '' || selected === undefined) return;

var recommendedLis =              document.querySelectorAll('[class*="attribute__swatch--length-' + recommendedVal + '"] div');
recommendedLis.forEach(function(recommendedLi, i) {
  if (recommendedLi !== null && recommendedLi !== undefined) {
    recommendedLi.classList.add('showBorder');
    $('.box-tip').show();
    var currentPosition = $('.showBorder').parent().position().left;
    var sleeveRecom =    document.getElementsByClassName('box-tip');
      var info = sleeveRecom.length ? sleeveRecom[0] : false;
      info.style.paddingLeft = currentPosition + -75 + 'px';
  }
});
}
}

如果要检查div是否存在,可以使用以下方法(使用JQuery):

或者-因为您编辑了文章-没有JQuery:

if ( document.getElementsByClassName('box-tip').length != 0 ){
      //do something
}

只需使用jQuery即可实现所有这些。如果类不存在,jQuery方法将不会导致错误

function applyRecommendedSleeveLength() {
    $('.box-tip').show().first().css('paddingLeft',  (currentPosition - 75) + 'px');       
}

你的问题到底是什么?为了便于将来参考,也为了不惹恼同事,请学习更好的选项卡规则。为什么不使用jQuery获取
.box tip
元素,就像上面几行一样?这样,DOM中是否有匹配的元素就无关紧要了,因为jQuery可以容忍这种情况,可以添加一个检查来查看是否存在框提示:
if($('.box-tip').length){}
,但是正如Rory所说,jQuery通常是非常宽容的,所以我看不出上面的代码中会出现什么问题。还有,为什么你用jQuery和原生js都会得到提示,我认为当你将info设置为false时,原生js会崩溃,它不会有样式属性。你能展示我如何将jQuery解决方案融入到我的代码中吗?我是否从顶部围绕这条语句包装整个函数?我应该把它放在哪里?你试图进入盒子提示的地方,并想确保它在那里。i、 e.-在使用“$('.box-tip').show()之前。(应该在“do something”部分中。我认为使用jquery将是更好的选择,因为您说它不会导致错误。知道如何将上述代码转换为jquery吗?如何将“showborder”功能转换为此?请参阅我问题中的代码
function applyRecommendedSleeveLength() {
    $('.box-tip').show().first().css('paddingLeft',  (currentPosition - 75) + 'px');       
}