【问题标题】:Convert a div text to a dropdown and the div text is the selected option将 div 文本转换为下拉列表,并且 div 文本是选定选项
【发布时间】:2014-09-13 20:28:25
【问题描述】:

div 的文本需要成为生成的选择下拉菜单的选定选项。我成功地创建了下拉列表并替换了 div,但是为设置所选选项而给出的值没有被选中。

下面是我如何获取 div 值以及如何创建下拉列表

<script type="text/javascript">

var d = document.getElementById("val_to_set");

 var rvalue = d.innerHTML;    //Getting the value of div

//The options of a dropdown are populated from another dropdown menu 

 var listOptions =  document.getElementById("dropdown");

 var newddown = '<select name="displayoption">'+listOptions.innerHTML+'</select>';

 //Replace the div with the created dropdown menu 

d.innerHTML = newddown;    //TARGET ELEMENT

</script> 

我发现这个链接解释了如何按值、文本或索引进行选择

[1]http://www.daftlogic.com/information-programmatically-preselect-dropdown-using-javascript.htm

当尝试获取新创建的下拉菜单的选项时,我得到“选项未定义”

新的下拉菜单不会选择给定的选项 - 我已经尝试了给定链接中的所有情况,包括在将 div 替换为下拉菜单之前添加以下行。

var seeker = ">"+rvalue+"<";
newddown = newddown.replace(seeker, "selected"+seeker);

我做错了什么?我是 jQuery 的初学者,我想坚持使用 JavaScript。

已编辑 - 包含用于填充目标元素选项的下拉列表

<select id="dropdown" name="listedoptions" >
<?php

echo "    <option value=''></option>  \n";
          $ores = sqlStatement("SELECT option_id, title, is_default FROM list_options" .
                  " WHERE list_id = 'adjreason'  ORDER BY seq, title");

            while ($orow = sqlFetchArray($ores)) {
            echo "    <option value='" . $orow['option_id']). "'";
            echo ">" . $orow['title'] . "</option>\n";
            } 
 ?>
 </select>

【问题讨论】:

  • 请问您能否包含目标 html 的标记?
  • 我编辑了内容以包含目标元素 d.innerHTML = newddown;
  • 您正在获取“选择”的内部HTML(仅“选项”列表)。如果菜单应该像普通的“选择”对象一样可选择,也许您应该获取外层HTML,以便包含“选择”对象。

标签: javascript


【解决方案1】:

这是一个使用您的代码和一些示例选项的工作示例:

http://jsfiddle.net/m6y3mgky/

不是替换文本,而是很容易迭代选项并以编程方式选择正确的选项,这是根据您引用的文章。这也不太容易出错。

var opts = d.childNodes[0].options;
for (var i = 0; i < opts.length; i++) {
    if (opts[i].value == rvalue) {
        opts[i].selected = true;
        break;
    }
}

注意:d引用的是

,而不是

【讨论】:

  • 感谢您的意见 mikeapr4!这个 childNodes 成功了 :)
猜你喜欢
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2021-01-15
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多