如何将变量添加到已经串联的选择器?

How to add a variable to a selector that is already concatenated?

我正在尝试从 div 获取数据级别并将其用于按钮的数据 我不知道如何将变量 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>

您的逻辑是正确的,问题只是字符串连接被 mis-matched 引号打断了。试试这个:

$(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 支持,您可以使用模板文字使字符串连接稍微更简洁:

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