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

时间:2015-06-13 18:16:08

标签: javascript php jquery html

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

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

有什么建议吗?非常感谢,感谢任何帮助!

3 个答案:

答案 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是您想要的选项的索引。