如果元素的属性值等于给定的字符串,则将元素添加到元素

时间:2014-10-14 12:45:56

标签: jquery html

<ul>
    <li>
        <input type="radio" name="letter_type" data-custom="Something" value="0">  Something
    </li>
    <li>
        <input type="radio" name="letter_type" data-custom="Something1" value="1"> Something1
    </li> 
    <li>
        <input type="radio" name="letter_type" data-custom="Something2" value="2" >  Something2
    </li>
</ul>
<script>
    if ($("input[data-custom='Something1']")) {
        alert(true);
        $(this).attr('checked', true);
    }; 
</script>

该列表由我的PHP(循环)脚本生成,我想知道为什么这不起作用。我需要在绘制列表后默认选中Something1

JSFiddle example

3 个答案:

答案 0 :(得分:2)

$("input[data-custom='Something1']").prop( 'checked', true );

<强> DEMO

答案 1 :(得分:1)

您不需要if

$("input[data-custom='Something1']").attr( 'checked', true );

答案 2 :(得分:1)

你需要检查if的长度,因为jQuery总是返回一个具有length属性的对象,如果找不到该元素且对象是 truthy 。也可以使用prop代替attr来设置checked值。

var elm = $("input[data-custom='Something1']");
if(elm.length){
   alert(true);
   elm.prop('checked', true);
}