0

这可能是一个奇怪的问题——现在我有一个充满 HTML 的变量,我想使用 jQuery(或 JS)在该变量中搜索带有复选框的输入,并返回信息。

所以:

alert($(this).parent().parent().html())
var thisIsThat = $(this).parent().parent().html();
alert(thisIsThat)
var Awesome = $(thisIsThat).find('input:checked');

然后在我获得该变量后,在成功调用 ajax 后,我想更改其中的特定属性,如下所示:

$(Awesome).attr('value', 'false');

现在,“真棒”没有返回任何内容,这不允许我像我想要的那样更改属性。我也可能走错了方向 - 任何建议表示赞赏!

4

3 回答 3

3

用这个

var thisIsThat = $(this).parent().parent();
alert(thisIsThat)
var Awesome = $(thisIsThat).find('input:checked');

在这种情况下thisIsThat是一个对象,您可以使用该对象找到任何东西

于 2012-09-28T12:49:53.923 回答
0

这是一个示例,显示了从字符串中运行的相同基本思想,该字符串发现复选框很好并取消选中它。

<div id="out"></div>​
<script>
    var htmlStr = '<div><input type="checkbox" checked="checked"/></div>';
    var temp = $(htmlStr);
    var cb = temp.find("input:checked");
    cb.attr("checked",false);
    jQuery("#out").append(cb);
</script>

jsfiddle

我打赌的问题是您正在手动检查复选框。当你这样做时,它不会更新 DOM 属性。

这是一个向您展示问题的基本示例。

<div id="one">
    <input type="checkbox" />
</div>
<button>Tell</button>​

<script>
    function tellMe(){
        var myDiv = jQuery("#one");
        var html1 = myDiv.html();
        console.log(html1);
    }

    jQuery("button").click(tellMe);  
</script>

看看上面代码的这个小提琴

打开控制台,然后单击按钮。您将看到它未选中。选中复选框并再次单击按钮,即使选中了复选框,也会输出相同的 html。

于 2012-09-28T12:53:51.500 回答
-3

改变

var Awesome = $(thisIsThat).find('input:checked');

var Awesome = $(thisIsThat).find('input[type=checked]');

now loop over it

Awesome.each(function(){
  if($(this).is(':checked'))
    {
     $(this).attr('checked',false);
    }
});
于 2012-09-28T12:41:31.963 回答