无法读取未定义的 JQuery 选项标记的属性


Cannot Read Property of Undefined JQuery Option Tag

我收到错误无法读取未定义的属性"####"(####是我尝试使用的任何数字)

目标是根据我提供的数字检索我的表单选项的内部 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 是所需选项的索引。