Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery xpath选择器_Jquery_Xpath_Jquery Selectors - Fatal编程技术网

Jquery xpath选择器

Jquery xpath选择器,jquery,xpath,jquery-selectors,Jquery,Xpath,Jquery Selectors,好的,我有一个带有单选按钮的元素,当单击add按钮时,我克隆了这个元素;但是,一旦我这样做,初始元素上的按钮将被取消选中。我知道为什么会发生这种情况,但一旦我开始实施一个变通方案,它就不会像我期望的那样 以下是我的解决方案: //This stores the value of the checked element into a variable before the clone var radioKeep = $('input.event'+(numOfParts-1)+':

好的,我有一个带有单选按钮的元素,当单击add按钮时,我克隆了这个元素;但是,一旦我这样做,初始元素上的按钮将被取消选中。我知道为什么会发生这种情况,但一旦我开始实施一个变通方案,它就不会像我期望的那样

以下是我的解决方案:

    //This stores the value of the checked element into a variable before the clone
    var radioKeep = $('input.event'+(numOfParts-1)+':checked').val();

    //Cloned the element passed into the function
    $(element).parent().clone(true, false).insertAfter($(element).parent());
然后在克隆之后,我尝试确保使用以下jquery和xpath组合重新检查初始单选按钮

    $('input.event'+(numOfParts-1)+'[@value='+radioKeep+']').attr('checked', 'checked');
结果是检查了所有无线电元件。。。为什么


提前感谢。

克隆元素时,新元素与旧元素具有相同的值和类别,然后设置两者的选中值,但只能选中其中一个,因此最后一个元素将收到选中。首先,我会解决这个问题

$('input.event'+(numOfParts-1)+'[@value='+radioKeep+']').first().attr('checked', 'checked');
但是,如果使用比1.3.2更新的jquery,这仍然不起作用,因为xpath支持已在1.3.2中删除,只需删除
@

$('input.event'+(numOfParts-1)+'[value='+radioKeep+']').attr('checked', 'checked');
现在我们有一个可能的未来证明问题,您正在使用
.attr()
来设置属性,您确实应该使用
.prop(“checked”,true)

$('input.event'+(numOfParts-1)+'[value='+radioKeep+']').prop('checked', true);

如果这不能解决您的问题,我建议发布示例html和一个可以测试代码的工作函数。由于缺少周围的函数和缺少html,我在这里做了很多假设。

克隆元素时,新元素与旧元素具有相同的值和类,然后设置两者的选中值,但是只能选中其中一个,因此最后一个元素会收到选中的。首先,我会解决这个问题

$('input.event'+(numOfParts-1)+'[@value='+radioKeep+']').first().attr('checked', 'checked');
但是,如果使用比1.3.2更新的jquery,这仍然不起作用,因为xpath支持已在1.3.2中删除,只需删除
@

$('input.event'+(numOfParts-1)+'[value='+radioKeep+']').attr('checked', 'checked');
现在我们有一个可能的未来证明问题,您正在使用
.attr()
来设置属性,您确实应该使用
.prop(“checked”,true)

$('input.event'+(numOfParts-1)+'[value='+radioKeep+']').prop('checked', true);

如果这不能解决您的问题,我建议发布示例html和一个可以测试代码的工作函数。由于缺少周围的函数和缺少html,我在这里做了很多假设。

我可能应该提到的是,并非所有元素都显示为选中状态,只有在源代码中才显示为选中状态=“选中”页面上的最后一个单选按钮仍然保持可见选中状态。很难说,你能
console.log吗(radioKeep+'-'+numOfParts)
,这些值是否发生过更改?如果没有,则选择器将匹配每个克隆的元素,并且您也不会清除该值,因此该值将始终匹配。似乎这是最有可能的问题。您能获得JSFIDLE吗?我在试图找出问题的同时提醒了一些值,并且我尝试的方式使一切都有意义it.So$('input.event'+(numOfParts-1)的计算结果为$('input.event0')radioKeep的计算结果是正确的值。
0
eve是否会在成功单击后改变?还是每次都是0?如果是这样,那么所有元素每次都会有该类,这是我的想法的1/2,现在
radioKeep
的值是否会改变?我对类的增量值没有做过否定,但这是什么到目前为止一直在为我工作。当我添加一个元素时,它会将event0更改为event1…event2等等。每个部分也有多个单选按钮,并且每个按钮都有不同的值;但是,这并不重要,因为我正试图通过它们的class属性访问它们。我可能应该提到的是,并非所有元素都显示为checked,只有在源代码中才显示checked=“checked”页面上的最后一个单选按钮仍然保持可见的选中状态。很难说,你能
console.log(radioKeep+'--'+numofarts)吗
,这些值是否发生过更改?如果没有,则选择器将匹配每个克隆的元素,并且您也不会清除该值,因此该值将始终匹配。似乎这是最有可能的问题。您能获得JSFIDLE吗?我在试图找出问题的同时提醒了一些值,并且我尝试的方式使一切都有意义it.So$('input.event'+(numOfParts-1)的计算结果为$('input.event0')radioKeep的计算结果是正确的值。
0
eve是否会在成功单击后改变?还是每次都是0?如果是这样,那么所有元素每次都会有该类,这是我的想法的1/2,现在
radioKeep
的值是否会改变?我对类的增量值没有做过否定,但这是什么到目前为止一直在为我工作。当我添加一个元素时,它会将event0更改为event1…event2等等。每个部分也有多个单选按钮,每个按钮都有不同的值;但是,这不重要,因为我正在尝试通过它们的class属性访问它们。谢谢,我没有提供更多代码,因为不需要代码,谢谢很好地回答了我的问题,谢谢。谢谢,我没有提供更多的代码,因为不需要代码,你很好地回答了我的问题,谢谢。