如何检索实际的字符串选择器

时间:2014-06-16 17:51:37

标签: javascript jquery css

给定带有选项的选择标记:

<div id='mydiv'>0</div>
    <select id="mysel">
        <option id="opt1">a</option>
        <option id="opt2">b</option>
    </select>...

如何检索实际的字符串选择? IE浏览器。如何从var mysel中检索实际的“select#mysel”?

如何使用它的例子?

var mysel = $("select#mysel");
var myopt = $(mysel.actualstringselection + " option");
var myoptcount = myopt.length;
alert("my option count:" + myoptcount );
$("#mydiv").html(myoptcount);

1 个答案:

答案 0 :(得分:2)

回答更新的问题

  

如何检索实际&#34;选择#mysel&#34;来自var mysel?

     

如何使用它的例子?

var mysel = $("select#mysel");
var myopt = $(mysel.actualstringselection + " option");

所以基本上,你想要传递给$()的原始选择器字符串以获得mysel

你无法做到。 jQuery从未提供过正式的方法。很长一段时间,jQuery实例上都有一个未记录的属性(主要是大部分时间),但它总是没有文档,因为它不是完全可靠的,它甚至不存在于当前版本。

相反,你可以自己做:

 var selector = "select#mysel";
 var mysel = $(selector).data("selector", selector);
 // Presumably somewhere else where you no longer have the `selector` variable:
 var myopt = $(mysel.data("selector") + " option");

,您不希望将其用于上述内容。 (您使用find,如最初[下面]所述)。我能想到这样一件事的唯一原因是你是否改变了DOM并希望重复原始查询。 E.g:

mysel = $(mysel.data("selector")); // Goes looking for the elements again

原始回答

如果在这一行之后:

var mysel = $("select#mysel");

...您尝试使用mysel在该jQuery对象中的任何DOM元素的后代元素中查找内容,使用find

var optionElements = mysel.find("option");