选择器jQuery中的变量

时间:2012-05-11 16:34:44

标签: jquery html variables select

我似乎无法在jQuery中的选择器中使用变量。这是一个非常简单但又烦人的bug!有关示例,请参阅此jsFiddle

以下不起作用:

var folder_id = "folder";

$("#selects select[name='" + folder_id + "']").append('<span>Hi></span>');

标记:

<div id="selects">
    <select name="folder_id">
        <option>hey</option>
    </select>

</div>​

5 个答案:

答案 0 :(得分:2)

回答你实际提出的问题(但也见下文):

您告诉它使用select name找到folder,而不是folder_id。但您的select名称为folder_id

所以要么改变代码:

//                     v----- change here
var folder_id = "folder_id";

$("#selects select[name='" + folder_id + "']").append('<span>Hi></span>');

Updated fiddle(但同样,请参阅下面的休息时间)

... 更改标记:

<div id="selects">
    <select name="folder">
        <option>hey</option>
    </select>

</div>​

Updated fiddle


但请注意,您尝试将span附加到select,这是无效的标记,但无效。 select elements不能包含spans(仅optionoptgroup个元素)。如果您打算在 select之后,请使用after

//                                             v--- change here
$("#selects select[name='" + folder_id + "']").after('<span>Hi></span>');
//         also note the `>` you probably don't want here ----^

Another fiddle

答案 1 :(得分:1)

它工作正常但你的folder_id错了所以它不匹配。

已修复:http://jsfiddle.net/trapper/yYzvL/1/

答案 2 :(得分:1)

var folder_id = "folder_id";

$("#selects select[name='" + folder_id + "']").append('<span>Hi</span>');

您的ID设置不正确,加上一些HTML在附加的范围内不正确。

答案 3 :(得分:1)

除了其他人的答案,这是正确的,为什么要在<span>列表中添加<select>

如果您尝试添加新选项,肯定会添加这样的内容吗?

$("#selects select[name='" + folder_id + "']").append('<option>Hi</option>');

这会在选择列表中添加一个新选项,请参阅this小提琴。


或者,如果您尝试将文本添加到选项列表中,为什么不这样呢?

$("#selects select[name='" + folder_id + "'] option").append('<span>Hi</span>');

请参阅this小提琴。

答案 4 :(得分:0)

请参阅我更新的(工作)示例:

http://jsfiddle.net/yYzvL/6/

您的代码存在以下问题:

1 - 分配给folder_id的值不正确
2 - 未附加<option>标记用于附加值

更新的JavaScript是:

var folder_id = "folder_id";
$('#selects select[name="' + folder_id + '"]').append($('<option>Hi</option>'));