如何使用 $('#id 选项:eq(VARIABLE)') 中的变量?



我基本上想通过比较相应的值来为某个索引设置一些下拉菜单。这是代码:

function InitializeLieblingsplatzOptions(){
  $.post('../include/retrieveLieblingsplatz.php',{
  //nothing to transmit
  }).then((data) => {
    data = JSON.parse(data)
    console.log("data in retrieveLieblingsplatz.php is ", data)
    //let test = $('#liebraum').find("test")
    $('#liebraum option:eq(data.raum)').prop('selected', true)
    $('#liebsitz option:eq(data.nummer)').prop('selected', true)
  })
}

ajax返回的数据包含两个字符串,表示房间名和座位号。该网站上有2个下拉菜单,其中包含所有房间的所有名称以及相应房间的所有可用座位。我现在想使用AJAX返回的2个字符串将这些下拉菜单的选项设置为相应的选项。因此,我使用上面已经显示的两个jquery命令:

$('#liebraum option:eq(data.raum)').prop('selected', true)
$('#liebsitz option:eq(data.nummer)').prop('selected', true)

目前,什么都没有发生^^就像两个下拉菜单都没有被触摸一样。我想知道这是否是因为我必须将这些包含要进行比较的字符串的变量放入"子句中。正因为如此,它们只是被视为字符串,而不是变量。到目前为止,我从未在jquery的上下文中遇到过这样的情况,我不知道是否有办法处理它

您可以使用css选择器来完成此操作,如so

$('#liebraum option:eq('+data.raum+')').prop('selected', true);

或者使用jQuery公开的.eq方法。

$('#liebraum option').eq(data.raum).prop('selected', true);

请搜索如何在javascript中连接字符串。。。

$('#yourID option:eq(' + yourVariable + ')')

您可以使用ES6模板文字:

$(`#liebraum option:eq(${data.raum})`)

或者,如果您想坚持使用ES5,请使用String串联:

$('#liebraum option:eq('+data.raum+')')

最新更新