2

我正在尝试构建一个 jQuery 选择器。这涉及连接字符串和变量。但是,由于某种原因,生成的选择器无效。我尝试了许多选项,例如:

$('[name="[name='$radioName + (row_id) + ']"][value="$result"]').attr('checked',true);

$radioName例如:'Nigeria[Osun][Okuku-;// 尖括号没有闭合,因为 row_id 将在附加闭合括号之前附加到它上面,如上所示。

$result例如:'67

row_id例子是:5

我如何构建具有这些要求的有效描述符?

谢谢

4

2 回答 2

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);
于 2013-02-05T13:35:03.500 回答
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);
于 2013-02-05T13:38:42.363 回答