0

我的 javascript 技能不是最好的,但我最近一直在研究它们,我想做的一件事是为 html 选项标签设置属性。我在 jfiddle 上发布了这个项目,以便更容易看到。你可以在这里看到。我想我只是关闭了一行代码或其他东西。

如何从选项 2 中删除选定属性并为选项 1 创建选定属性?换句话说,当我打开“另一个弹出窗口”时,选择了选项 1 而不是选项 2。

我建议您查看 jsFiddle 链接,但我也发布了有关此问题的代码。更新链接的javascript:

function updateSelected(id, removeID, parentID) {
    document.getElementById(parentID).style.display = 'none';
    document.getElementById(id).setAttribute("selected","selected");
    document.getElementById(removeID).removeAttribute("selected")
}

的HTML:

<a href="#box" rel="popup">Popup</a>

<div id="box" class="popup">
<a href="#another-box" rel="popup" onClick="updateSelected("1", "2", "box");">Another box</a>
</div>
<div id="another-box" class="popup">
<form>
    <select>
        <option id="1">option 1</option>
        <option id="2" selected>option 2</option>
    </select>
</form>
</div>

谢谢您的帮助

4

4 回答 4

2

要更改选择的条目,您应该更改.selected 属性,而不是属性

document.getElementById(id).selected = true;

属性只设置控件的初始值,而属性设置当前值。

请注意,也无需从先前选择的元素中删除该属性。这会自动发生,因为(默认情况下)一次只能“选择”一个元素。

或者,将.value封闭的属性设置为与所需元素<select>的值相同。<option>该值将是元素value上的属性值<option>,如果没有value属性,则为包含的文本。

http://jsfiddle.net/alnitak/C98Wc/

于 2013-04-02T14:55:06.570 回答
0

像这样:

document.getElementById(id).selected=1;//or true

而另一种方法是

document.getElementById(id).selected=0;//or false

@Alnitak - 感谢您的更正。

于 2013-04-02T14:54:16.610 回答
0

注意你的报价,尝试用<a>这个替换标签:

<a href="#another-box" rel="popup" onClick="updateSelected('1', '2', 'box');">Another box</a>

双引号内不能使用双引号

于 2013-04-02T14:56:55.763 回答
0

为什么不一直使用 jQuery?还要在双引号内使用单引号

小提琴

<a href="#another-box" rel="popup" id="another" >Another box</a>


$(function() {
    $('a[rel*=popup]').leanModal({ top : 200, closeButton: ".popup-close" });       
    $("#another").on("click",function(e) {
        updateSelected("o1","box");
        return false; // cancel click - can be e.preventDefault() instead 
    });


});         
function updateSelected(id, parentID) {
    $("#"+parentID).css("display","none"); // or .hide()
    $("#"+id).prop("selected",true);
}
于 2013-04-02T14:57:47.557 回答