在Select元素的Option元素中获取自定义属性

Getting a custom property inside an Option element of a Select element

本文关键字:元素 获取 自定义属性 Select Option      更新时间:2023-09-26

可能重复:
浏览器独立性问题代码适用于IE,但不适用于Firefox和Chrome

我正在尝试支持一些旧代码,并且在html:中的Select元素中有一个option元素

<select onChange="selectURL(this)" style="font-family:Arial; font-size:12;" id="select1" name="select1">
<option ThisCourse="80921" TITLE="- _ ~ : /  =  ’ ; . , ?  ) (.2'" CLASS="" ID="a368890534077645903f263b5ddc105f" VALUE="/Eclass/CourseFrames.asp?vcCourseGUID=a368890534077645903f263b5ddc105f&amp;vcCourseName=%2D+%5F+%7E+%3A+%2F++%3D++%92+%3B+%2E+%2C+%3F++%29+%28%2E2%5C&amp;vcCourseID=80921&amp;NewWin=0&amp;language=">- _ ~ : /  =  ’ ; . , ?  ) (.2'</option>

该网站上运行着一些javascript,它正试图做到这一点:

for (i=0; i<SelectElement.options.length;i++)
if (SelectElement.options[i].ThisCourse == CourseID)
SelectElement.selectedIndex = i

在IE中,这很好用——它可以设法进入ThisCourse。然而,Firefox和Chrome不理解SelectElement.options[i]ThisCourse

我想有一些现代的方式来获得"ThisCourse",但我不知道怎么做。

尝试使用getAttribute方法,而不是访问属性,如下所示。。。

if (SelectElement.options[i].getAttribute('ThisCourse') == CourseID)

IE通常对属性值和属性一视同仁,但它们不同。

尝试:

SelectElement.options[i].getAttribute("ThisCourse");

您应该使用HTML5的"数据"属性。

http://html5doctor.com/html5-custom-data-attributes/