javascript - 如何在 jQuery 表达式中使用函数的字符串参数

标签 javascript html jquery jquery-events

我有一些链接和选择框。我的html代码如下:

<div>
    <div>
        <a href='#' onclick='set_checked(false,"checkbox1")'>clear</a>
        <a href='#' onclick='set_checked(true,"checkbox1")'>select</a>
    </div>
    <div>
        <input type='checkbox' name='checkbox1'/>
    </div>
</div>

<div>
    <div>
        <a href='#' onclick='set_checked(false,"checkbox2")'>clear</a>
        <a href='#' onclick='set_checked(true,"checkbox2")'>select</a>
    </div>
    <div>
        <input type='checkbox' name='checkbox2'/>
    </div>
</div>

现在我的要求是,当我单击select链接时,我必须根据其参数检查复选框,并反转以清除。这里我传递两个参数。一种是传递 bool 值(即,如果 true 则选中,否则取消选中),另一种是传递复选框字段的名称参数。
我使用以下函数来选中或取消选中复选框:

function set_checked(checked,inputFeildName){
   $('input[name=inputFeildName]').attr('checked',checked);
} 

但是上面的代码不起作用。这是我的 fiddle http://jsfiddle.net/vu6fs/5/

我还有一个要求,在选择任何复选框之前,必须禁用所有清除链接,在选择复选框后,必须启用相应的清除链接。我在 JavaScript 中应用了不透明度和“禁用”属性,但它不起作用,任何人都可以告诉我我的错在哪里..

任何人都可以帮助我吗?

最佳答案

jQuery 1.6+

function set_checked(checked,inputFeildName){

   $('input[name="'+ inputFeildName +'"]').prop('checked',true);

} 

jQuery 1.5 及更低版本

function set_checked(checked,inputFeildName){

   $('input[name="'+ inputFeildName +'"]').attr('checked','checked');

} 

这是您扩展问题的示例(您想要更多,关于禁用/启用复选框更改上的 a 标记)

CSS

.disButton {
    background: transparent;
    border: none;
}
.disButton a {
    text-decoration: none;
    color: #ddd;
}

jQuery

$('input:checkbox').on('change', function() {
    enable_clear(this, this.checked);
}).change();

function enable_clear(el, checked) {
    var target = $(el).parent('div').prev('div').find('a:contains(clear)');
    if (checked) {
        target.unwrap();
    } else {
        target.wrap($('<button/>', {
            disabled: true,
            'class': 'disButton',
            width: target.width() + 'px'
        }));
    }
}
$('a').on('click', function(e) {
    e.preventDefault();
    var target = $(this).parent().next('div').find('input:checkbox');
    if (!target.is(':checked') && $(this).text() == 'select') target.click();
    if ($(this).text() == 'clear') target.click();
});

<强> DEMO

关于javascript - 如何在 jQuery 表达式中使用函数的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513602/

相关文章:

javascript - Fullcalendar 3 - 当前日期边框颜色

javascript - 从视频库中删除视频导航闪烁

javascript - Require.js 错误 : Load timeout for modules: backbone,

php - HTML 表单中的文本输入不会显示

html - div中的图片因高差被截断,如何完整显示?

javascript - jquery.kyco.googleplusfeed.min.js 未缩小的源代码

javascript - 如何在 React 中将重复的 JSX 抽象为高阶组件

html - 如何仅使用 CSS 强制 <div> 与复选框内联?

jquery父隐藏不工作

jquery - 滑动框过渡效果