我正在尝试构建一个jQuery选择器。这涉及连接字符串和变量。但是,由于某种原因,生成的选择器出现无效。我尝试了很多选项,例如:
$('[name="[name='$radioName + (row_id) + ']"][value="$result"]').attr('checked',true);
$radioName
示例是:'Nigeria [Osun] [Okuku - ; //尖括号未关闭,因为如上所示,在附加右括号之前将附加row_id。
$result
示例是:'67
row_id
示例是:5
如何构建具有这些要求的有效描述符?
由于
答案 0 :(得分:1)
尝试:
$('[name="' + $radioName + row_id + ']' + '"][value="' + $result + '"]').attr('checked',true);
当我将连接的表达式放在一起时,使用我首先使用适当的引号编写静态文本。类似的东西:
$('[name=""][value=""]').attr('checked',true);
然后我将'+ +'
粘贴到我要添加变量的每个点中。像这样:
$('[name="'+ +'"][value="'+ +'"]').attr('checked',true);
最后,我添加变量:
$('[name="'+ $radioName + row_id + ']' + '"][value="'+ $result +'"]').attr('checked',true);
答案 1 :(得分:0)
我认为最好将选择和比较分开:
$('[name][value]') // select all elements that have both name and value attributes
.each(function() {
var $this = $(this);
if ($this.attr('name') == 'whatever' && $this.attr('value') == 'result') {
$this.prop('checked', true);
}
});
或过滤它们:
$('[name][value]') // select all elements that have both name and value attributes
.filter(function() {
var $this = $(this);
return $this.attr('name') == 'whatever' && $this.attr('value') == 'result';
})
.prop('checked', true);