将变量放入选项select中


Put variable int option select

我试图通过jQuery与PHP变量选择一个选择选项。

HTML

<div id="dom-target">
<?php 
    $output = $user->distritos;
    echo htmlspecialchars($output);
?>
</div>
jQuery

<script type="text/javascript">  
    var div = document.getElementById("dom-target");
    var myData = div.textContent;
    jQuery('select[name="country"]').find('option:contains(" + myData + ")').attr("selected",true);    
</script>

但不会改变,只有当我用文本替换option:contains(" + myData + ")时,例如option:contains("123"),它将选择文本"123"的选项

我做错了什么?

谢谢!

您正在连接find()内部的字符串。考虑字符串的这三个部分:

  1. option:contains("
  2. myData
  3. ")

要构建这样一个字符串,您需要在第一部分之后关闭单引号,附加myData,并再次打开第三部分的单引号。

否则,您将选择包含字符串" + myData + "的<option>

var $div = jQuery("#dom-target"),
    myData = $div.text();
jQuery('select').find('option:contains("' + myData + '")').prop("selected", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="dom-target">foo</div>
<select>
  <option>test</option>
  <option>option 2</option>
  <option>foo</option>
  <option>bar</option>
</select>