js如何控制select标签哪个被选中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何控制select标签哪个被选中相关的知识,希望对你有一定的参考价值。

我要触发一个方法,里面执行select标签设置为默认的第一个option,如何操作?
我是这么写的,不知道哪里错了
document.getElementById("test“).options[0].selected=true;

JS 控制select选中项,代码如下:

<html>  
  <script type="text/javascript">  
    var selectedValue = \'<%= request.getAttribute("line")%>\';  
      
    function changeSelected()  
        jsSelectItemByValue(document.getElementById("mySelect"),selectedValue);  
      
      
    function jsSelectItemByValue(objSelect,objItemText)   
        for(var i=0;i<objSelect.options.length;i++)   
            if(objSelect.options[i].value == objItemText)   
                objSelect.options[i].selected = true;  
                break;  
              
          
      
  </script>  
  
  
  <body onload="changeSelected()">  
    <select id="mySelect" name="mySelect">  
      <option value="0">0</option>  
      <option value="1">1</option>  
      <option value="2">2</option>  
      <option value="3">3</option>  
    </select>  
  </body>  
</html>
参考技术A 这样写没错,可能是你别的地方JS写错了,导致JS没作用不执行,仔细检查看
也可用用JQUERY 引入JQUERY.js
$('#test option:first').attr('selected','selected');本回答被提问者采纳
参考技术B selected="selected"
这样写
参考技术C test右边的冒号错了 参考技术D <html>  
  <script type="text/javascript">  
    var selectedValue = '<%= request.getAttribute("line")%>';  
         
    jsSelectItemByValue(document.getElementById("mySelect"),selectedValue);  
       
    function jsSelectItemByValue(objSelect,objItemText)   
        for(var i=0;i<objSelect.options.length;i++)   
            if(objSelect.options[i].value == objItemText)   
                objSelect.options[i].selected = true;  
                break;  
              
          
      
  </script>  
   
   
  <body onload="changeSelected()">  
    <select id="mySelect" name="mySelect">  
      <option value="0">0</option>  
      <option value="1">1</option>  
      <option value="2">2</option>  
      <option value="3">3</option>  
    </select>  
  </body>  
</html>

雷锋的代码有效..只是需要触发一下...我修改了一下..反正在我这是成功了的

如何更改视图控制器中的标签 我要加载一个 tableviewcell 被选中? [复制]

【中文标题】如何更改视图控制器中的标签 我要加载一个 tableviewcell 被选中? [复制]【英文标题】:How do I change the label in a view controller I want to load a tableviewcell is selected? [duplicate] 【发布时间】:2020-11-23 16:25:07 【问题描述】:

当用户点击一行时,我想转到一个视图控制器,该控制器将以所选行的名称作为标签文本。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    let pvc = segue.destination as! ProfileViewController
    let indexpath = tableView.indexPathForSelectedRow
    
    if let unwrappedPath = indexpath 
        tableView.deselectRow(at: unwrappedPath, animated: true)
        pvc.profileName.text = userList[unwrappedPath.row]

      


override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 

    performSegue(withIdentifier: "goToProfile", sender: self)

    

第 66 行是以下代码:pvc.profileName.text = userList[unwrappedPath.row] pic.profileName.text 的 text 属性此时为 nil,即使我将 userList 路径中的字符串分配给标签的 text 属性。

控制台:

致命错误:在隐式展开可选值时意外发现 nil:文件 (filenamegoeshere)/FoundTableViewController.swift,第 66 行

【问题讨论】:

【参考方案1】:

您正在尝试引用尚未实例化的视图 (profileName)。

你应该像这样在ProfileViewController 中声明一个全局变量

var expectedString = ""

并像这样编辑您的 prepare(for segue: ...) 方法

    guard let pvc = segue.destination as? ProfileViewController else  return 
    let indexpath = tableView.indexPathForSelectedRow
    
    if let unwrappedPath = indexpath 
        tableView.deselectRow(at: unwrappedPath, animated: true)
        pvc.expectedString = userList[unwrappedPath.row]
      

然后你可以在ProfileViewControllerviewWillAppear方法中设置你的标签文本:

override func viewWillAppear(_ animated: Bool)

    profileName.text = expectedString

【讨论】:

非常感谢!

以上是关于js如何控制select标签哪个被选中的主要内容,如果未能解决你的问题,请参考以下文章

多个select标签需要被同一个JS函数调用,怎么知道选中的是哪一个select标签??

JS如何控制select选中哪项?

select标签如何设置默认选中的选项

js控制select只能单选

js select标签获取值

select默认选中