错误消息:无法设置 selected 属性。 未指明的错误。

本文介绍了在IE6浏览器中设置Select控件selected属性时遇到的‘无法设置selected属性。未指明的错误’问题,并提供了一个解决方案:使用setTimeout函数延迟执行设置操作,从而避免了该错误。同时,文章表达了对IE6浏览器的不满,并提醒后续可能依赖selected属性的逻辑也需要放在setTimeout块中。



jQuery select 无法设置selected属性。未指明的错误 来自于:http://ycq.ngwz.com/redirect.php?tid=27368&goto=newpost

无法设置selected属性。未指明的错误

如果在IE6中设置select控件的selected属性的时候,会提示“无法设置selected属性。未指明的错误。”比如执行如下代码:

// 执行下面语句之后出错

$("#selCourse option").attr("selected",true);

后来查了一下资料,发现这个错误在IE5.5、7及Firefox等浏览器下面没有问题,唯独IE6下有如下的提示。后来有人找到了一个解决的方法,就是设置selected属性的时候使用setTimeout函数设定一个时间即可,代码如下:

// 使用setTimeout之后问题解决

setTimeout(function() {
$("#selCourse option").attr("selected",true);
}, 1);

补充:

鄙视IE6,居然有这样的问题.

如果后续还有其他依赖于selected属性的来进行判断的逻辑,也需要放在setTimeout块中.

setTimeout(function() {
$("#selCourse option").attr("selected",true);
//eg.
G.changeSelected();
}, 1);


<think>我们遇到一个编译错误:`subdir_rules.mk:18:build-295970111`。这个错误通常出现在使用TI的Code Composer Studio (CCS)进行嵌入式开发时,尤其是在构建工程的时候。错误信息指向了`subdir_rules.mk`文件的第18行,并且有一个构建ID(build-295970111)。这个错误通常是由于以下原因之一: 1. **工程配置问题**:可能工程中的某些路径配置不正确,或者引用了不存在的文件。 2. **工具链版本问题**:使用的编译器版本与工程设置不匹配。 3. **文件损坏或缺失**:工程中可能缺少必要的源文件或头文件。 4. **环境变量问题**:CCS依赖的一些环境变量没有正确设置。 ### 解决步骤: #### 1. **检查具体错误信息** 首先,我们需要查看完整的错误日志。通常,错误信息会紧跟在`subdir_rules.mk:18`之后。请查看构建控制台(Build Console)中的完整错误信息,它可能会给出更具体的错误原因,比如某个文件找不到、语法错误等。 #### 2. **清理并重新构建工程** 在CCS中,尝试以下操作: - 选择菜单:`Project -> Clean`,然后选择你的工程进行清理。 - 重新构建:`Project -> Build Project`。 #### 3. **检查工程配置** - **包含路径(Include Paths)**:右键工程 -> Properties -> Build -> ARM Compiler -> Include Options。检查所有包含路径是否正确,特别是那些指向DriverLib或其他库的路径。 - **预定义符号(Predefined Symbols)**:在同样的属性页中,检查“Predefined Symbols”是否正确定义了设备相关的宏(如`__MSPM0G3507__`)。 - **链接器配置**:检查链接器是否链接了正确的库文件(如`libdriverlib.a`)以及链接脚本(.cmd文件)是否正确。 #### 4. **检查文件完整性** - 确保工程中所有源文件(尤其是main.c)都存在且没有语法错误。 - 检查头文件是否被正确包含,特别是`ti_msp_dl_config.h`和`<ti/devices/msp/msp.h>`。 #### 5. **更新软件** - 确保你的CCS和SDK(如MSPM0-SDK)都是最新版本,或者至少版本兼容。 #### 6. **检查环境变量** - 某些工程可能依赖环境变量(如`CCS_INSTALL_ROOT`、`MSPM0_SDK_INSTALL_DIR`等)。你可以在CCS的`Preferences -> Code Composer Studio -> Build -> Environment`中检查或添加环境变量。 #### 7. **查看构建日志** - 在CCS的构建控制台中,可能会有更详细的错误信息。例如,如果错误是“file not found”,那么会指明哪个文件找不到。 ### 示例解决方案(如果错误是头文件找不到): 假设错误信息是:`fatal error #1965: cannot open source file "ti_msp_dl_config.h"`,那么我们需要确保包含路径正确。 **步骤:** 1. 右键工程 -> Properties 2. 选择 Build -> ARM Compiler -> Include Options 3. 在“Add dir to #include search path”中添加SDK的include目录,例如: ``` ${MSPM0_SDK_INSTALL_DIR}/source ${MSPM0_SDK_INSTALL_DIR}/source/driverlib ``` 注意:`MSPM0_SDK_INSTALL_DIR`是一个环境变量,需要指向你的SDK安装路径。如果没有设置,你可以直接使用绝对路径,如`C:/ti/mspm0_sdk_1_20_00_05/source`。 ### 如果问题仍然存在 如果以上步骤不能解决问题,请提供具体的错误信息(构建控制台中的完整错误日志),这样我们可以更准确地定位问题。 §§相关问题§§: 1. 如何在CCS中设置环境变量? 2. 如何为MSPM0工程添加自定义链接脚本? 3. CCS构建工程时出现定义符号错误如何解决? 4. 如何更新CCS中的MSPM0 SDK版本?</think>### 解决 `subdir_rules.mk:18:build-295970111` 编译错误的完整指南 这个错误是 **Code Composer Studio (CCS)** 编译过程中常见的构建系统问题,通常与工程配置、路径设置或依赖关系相关。以下是系统化的解决方案: --- #### 1. **清理并重建工程** ```plaintext Project -> Clean... -> (勾选"Clean all projects"和"Start build immediately") ``` - **原因**:临时文件损坏或编译缓存不一致 - **操作后**:观察控制台输出是否出现更具体的错误信息 --- #### 2. **检查工程依赖关系** 在工程根目录的 `.project` 文件中检查依赖项: ```xml <!-- 检查是否正确声明依赖 --> <projects> <project>DriverLib_Project</project> <!-- 确保依赖工程存在 --> </projects> ``` - **问题**:正确链接DriverLib等依赖库 - **验证**:右键工程 -> Properties -> Project References -> 勾选依赖工程 --- #### 3. **修复路径配置错误** 在工程属性的构建配置中: ```plaintext Properties -> Build -> Variables ``` 检查关键路径变量: ```makefile # 示例变量检查 DEVICE_FAMILY = MSPM0G3507 SDK_INSTALL_DIR = C:/ti/mspm0_sdk_1_20_00_05 ``` **常见修复操作**: 1. 删除无效变量:`${undefined_var}` 2. 更新路径:将 `C:\ti\...` 改为 `C:/ti/...` (使用正斜杠) 3. 添加缺失路径:`${SDK_INSTALL_DIR}/source` --- #### 4. **检查链接器文件** 在 `subdir_rules.mk` 第18行附近查找: ```makefile # 典型问题行示例 ${OBJECTDIR}/main.o: ../main.c \ ${SDK_INSTALL_DIR}/source/driverlib/inc/mspm0g3507.h # 检查文件是否存在 ``` **解决方案**: 1. 确认头文件物理路径存在 2. 更新文件路径引用: ```makefile # 错误示例 HEADERS = C:\ti\...\msp.h # 修正为 HEADERS = ${SDK_INSTALL_DIR}/source/driverlib/inc/msp.h ``` --- #### 5. **重建Makefile系统** 删除自动生成的文件后重建: 1. 关闭CCS 2. 删除工程目录下: - `Debug/` 或 `Release/` 文件夹 - `.cproject` 文件 - `.settings/` 文件夹 3. 重新导入工程:`File -> Import -> CCS Projects` --- #### 6. **更新工具链版本** 版本不匹配可能导致此错误: ```plaintext Help -> Install New Software ``` 选择:`TI Compiler Updates` -> 安装最新ARM编译器 --- #### 7. **验证完整配置示例** 正确配置的工程属性示例: ```makefile # .cproject 片段示例 <storageModule moduleId="org.eclipse.cdt.core.settings"> <cconfiguration id="com.ti.ccstudio.buildDefinitions.MSPM0.Debug.295970111"> <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider"/> <module id="com.ti.ccstudio.buildDefinitions.MSPM0.Debug.295970111" name="Debug"/> <extension point="com.ti.ccstudio.buildDefinitions.core.defBase"> <property selected="true" value="com.ti.ccstudio.buildDefinitions.mspm0g3507" name="Device"/> <property value="${SDK_INSTALL_DIR}/source" name="Include Paths"/> </extension> </cconfiguration> </storageModule> ``` --- #### 错误排查流程图 ```mermaid graph TD A[出现 subdir_rules.mk:18 错误] --> B{清理工程} B -->|失败| C[检查依赖工程] C -->|正常| D[验证路径变量] D -->|错误| E[修复路径语法] E --> F[检查第18行附近代码] F -->|文件缺失| G[添加缺失文件] F -->|路径错误| H[修正路径] H --> I[重建工程] I -->|成功| J[完成] I -->|失败| K[更新工具链] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值