使用Javascript设置选定的属性onClick
我的javascript技能不是最好的,但我最近一直在努力,我想做的一件事是为html选项标记设置属性。我把这个项目贴在JFIDLE上,让它更容易看。你可以看到。我想我只差一行代码什么的 如何从选项2中删除选定属性并为选项1创建选定属性?换句话说,当我打开“另一个弹出窗口”时,选择选项1而不是选项2 我建议您查看JSFIDLE链接,但我也发布了关于这个问题的代码。 更新链接的javascript:使用Javascript设置选定的属性onClick,javascript,jquery,html,Javascript,Jquery,Html,我的javascript技能不是最好的,但我最近一直在努力,我想做的一件事是为html选项标记设置属性。我把这个项目贴在JFIDLE上,让它更容易看。你可以看到。我想我只差一行代码什么的 如何从选项2中删除选定属性并为选项1创建选定属性?换句话说,当我打开“另一个弹出窗口”时,选择选项1而不是选项2 我建议您查看JSFIDLE链接,但我也发布了关于这个问题的代码。 更新链接的javascript: function updateSelected(id, removeID, parentID) {
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>
选择1
选择2
感谢您的帮助如下:
document.getElementById(id).selected=1;//or true
另一种方法是
document.getElementById(id).selected=0;//or false
@Alnitak-感谢您的更正。要更改选择的条目,您应该更改
.selected
属性,而不是属性
属性只设置控件的初始值,而属性设置当前值
请注意,也不需要从以前选择的元素中删除该属性。这会自动发生,因为(默认情况下)一次只能“选择”一个元素
或者,将封闭的
上的.value
属性设置为与所需
元素的值相同。该值将是
元素上的value
属性的值,或者如果没有value
属性,则为包含的文本的值
请参见查看您的报价,尝试替换
不能在双引号中使用双引号为什么不一直使用jQuery?在双引号中也使用单引号
$(函数(){
$('a[rel*=popup]').leanmodel({top:200,closeButton:“.popup close”});
$(“#另一”)。在(“单击”)上,函数(e){
更新选定(“o1”、“框”);
返回false;//取消单击-可以改为e.preventDefault()
});
});
已选择函数更新(id,parentID){
$(“#”+parentID).css(“显示”、“无”);//或.hide()
$(“#”+id).prop(“选定”,true);
}
没有数字ID,即使某些浏览器支持它,并且在双引号中使用单引号。请看我必须这样做,因为我使用php动态生成它们loop@mplungjan严格地说,数字id是HTML5的一项功能。@Alex不,你不必,只要在你的PHP中给它们加上前缀就行了。哦,好的,是的,我的意思是我这么做了,我不是为了简单起见,但它们都有id=“option-1”或者类似的。selected
是一个布尔属性。@Alnitak根据我的理解,这是正确的;不,你没有抓住重点。作为一个属性,您传递一个字符串,但作为一个属性(这是您使用。selected
)传递的是一个布尔值。无需从原始条目中删除该属性。除非是“多选”,否则它们都是相互排斥的。这仍然是错误的.prop('selected')
需要一个布尔值,而不是一个字符串,并且在一个不是事件处理程序的函数中不需要返回false
。好的,我一直在尝试使它工作,但它仍然不会为我更改它。我不知道为什么。在JS控制台中查看我更新的链接。它不起作用,因为updateSelected
被(jsfiddle)包装在onLoad
处理程序中,而DOM0处理程序必须是全局的。改为wrap(head)
,它就可以工作了。
document.getElementById(id).selected = true;
<a href="#another-box" rel="popup" onClick="updateSelected('1', '2', 'box');">Another box</a>
<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);
}