1

我似乎无法让变量在 jQuery 的选择器中工作。这是一个非常简单但令人讨厌的错误!有关示例,请参见此 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>​
4

5 回答 5

2

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

你告诉它selectname folder, 而不是folder_id. 但你select有名字folder_id

所以要么更改代码:

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

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

更新了小提琴(但同样,请参见下面的休息)

...更改标记:

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

</div>​

更新的小提琴


但请注意,您正在尝试将 a 附加span到 a select,这是无效标记并且不起作用。select元素不能包含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 ----^

另一个小提琴

于 2012-05-11T16:37:10.530 回答
1

它工作正常,但您的 folder_id 错误,因此不匹配。

固定:http: //jsfiddle.net/trapper/yYzvL/1/

于 2012-05-11T16:37:18.770 回答
1
var folder_id = "folder_id";

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

您的 id 设置不正确,并且附加的 span 中的一些 HTML 不正确。

于 2012-05-11T16:38:23.820 回答
1

除了其他人的答案都是正确的之外,您为什么<span>要在<select>列表中添加一个?

如果你想添加一个新选项,你肯定应该添加这样的东西吗?

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

这将在选择列表中添加一个新选项,请参阅this fiddle。


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

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

看到这个小提琴。

于 2012-05-11T16:41:57.960 回答
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>'));
于 2012-05-11T16:42:10.797 回答