我有一些按跨度分组的选择元素。我正在创建一个插件来与元素进行一些交互。现在我想为我的用户提供 val()
函数的支持,以便他们能够获取或设置我的跨度的“值”。设置该值将导致选择框元素发生变化,而获取该值将导致添加选择框值。
基本上,我希望我的插件 添加对val()
方法的支持。关于如何实现这个的任何想法?
代码
<span id="test">
<select id="one">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="two">
<option value="1">1</option>
<option value="2">2</option>
</select>
</span>
挑战
让以下代码起作用:$('#test').val('1:1');
和 $('#test').val()
.
最佳答案
这不是一个完整的插件,我没有重写 val()
但它应该可以满足您的需求。
$.fn.value = function(value) {
if (value) {
var s = value.split(':');
for ( var i = 0; i < s.length; i++ ) {
this.find('select').eq(i).val(s[i]);
}
} else {
var result = [];
this.find('select').each( function( index, item ) {
result.push($(item).val());
});
return result.join(':');
}
}
$(function() {
$("#test").value("2:2");
alert($("#test").value());
});
您可以在 http://jsfiddle.net/QBSWm/1/ 上试用
关于javascript - 如何为跨度实现 jQuery val()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895342/