我收到错误无法读取属性' ####'未定义的(####是我试图使用的任何数字)
目标是根据我提供的数字检索表单选项的内部html /文本。这是我尝试使用jQuery检索的文本的示例,因此我可以使用我的表单数据发送它。
<select>
<option value="1">Sword</option>
</select>
在此示例中,我正在尝试检索文本 - &gt; &#34;剑&#34; 这基于选项值&#34; 1&#34;。这就是我尝试这个的方法:
$item = $_POST['item'];
$option = "option[value='".$item."']";
$ _ POST [&#39; item&#39;]返回用于检索具有给定值的选项的内部文本的数字(在此示例中为&#34; 1&#34;)。
以下是在上面的2行之后,它尝试设置jQuery变量选项。
echo '<script type="text/javascript">var option = $(option[value="'.$item.'"]).html();</script>';
最后是jQuery代码,它使用之前初始化的$ option变量来尝试检索选项中的文本(&#34; Sword&#34;)
<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.
有什么建议吗?非常感谢,感谢任何帮助!
答案 0 :(得分:2)
使用jQuery访问选项文本的正确方法如下:
$('option[value="1"]').text()
这将在您的示例中返回Sword
。重要的区别在于使用.text()
vs .html()
。
答案 1 :(得分:1)
您无法使用$(this.option)访问php变量。
同样适当的方法是:
$("#selectId option[value='1']").text()
答案 2 :(得分:0)
$("#selectId option:eq(n)").text();
其中n是您想要的选项的索引。