我收到错误无法读取未定义的属性"####"(####是我尝试使用的任何数字)
目标是根据我提供的数字检索我的表单选项的内部 html/文本。这是我尝试使用 jQuery 检索的文本示例,以便我可以将其与我的表单数据一起发送。
<select>
<option value="1">Sword</option>
</select>
在此示例中,我正在尝试检索文本 ->"剑"这是基于选项值"1"。这就是我尝试的方式:
$item = $_POST['item'];
$option = "option[value='".$item."']";
$_POST['item'] 返回用于检索具有给定值的选项的内部文本的数字(在本例中为"1")。
下面是在上面 2 行之后,它尝试设置 jQuery 变量选项。
echo '<script type="text/javascript">var option = $(option[value="'.$item.'"]).html();</script>';
最后是jQuery代码,它使用之前初始化的$option变量来尝试检索选项中的文本("Sword")
<script>
console.log(option);
var itemName = $(this.option).html();
$.ajax({
type: "POST",
data:{ itemName: itemName },
success: function(data){
console.log(itemName);
}
})
</script>
我知道这段代码不起作用,因为我只是使用 console.log 来记录项目名称。但是,我的问题是控制台将记录:
Cannot read property '1' of undefined.
有什么建议吗?非常感谢,任何帮助将不胜感激!
使用 jQuery 访问选项文本的正确方法如下:
$('option[value="1"]').text()
这将在您的示例中返回Sword
。重要的区别是使用 .text()
与 .html()
.
你不能使用 $(this.option) 访问 php 变量。
同样合适的方法是:
$("#selectId option[value='1']").text()
$("#selectId option:eq(n)").text();
其中 n 是所需选项的索引。