如何将变量添加到已连接的选择器?

问题描述

我正在尝试从div获取data-lvl并将其用于按钮的数据中 我不知道如何将变量 dataquestion 放入选择器 知道选择器本身已经连接了

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div id='result'></div>

<div class='question' data-question='5' data-lvl='2'>

</div>


<script>
$(document).ready(function(){
  dataquestion=5;

  $('#result').html(<button type='button' data-lvl='"+$('.question[data-question="+ dataquestion +"]').data('lvl') +"[option]'>lorem ipsum</button>');
});
</script>

解决方法

您的逻辑是正确的,问题很简单,因为字符串连接被不匹配的引号破坏了。试试这个:

$(document).ready(function() {
  let dataquestion = 5;

  $('#result').html('<button type="button" data-lvl="' + $('.question[data-question="' + dataquestion + '"]').data('lvl') + '[option]">lorem ipsum</button>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div id="result"></div>
<div class='question' data-question="5" data-lvl="2"></div>

还请注意,假设您不需要IE支持,则可以使用Template文字使字符串连接更加简洁:

$('#result').html(`<button type="button" data-lvl="${$('.question[data-question="' + dataquestion + '"]').data('lvl')}[option]">lorem ipsum</button>`);