我试图通过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()
内部的字符串。考虑字符串的这三个部分:
-
option:contains("
-
myData
-
")
要构建这样一个字符串,您需要在第一部分之后关闭单引号,附加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>