【发布时间】:2011-09-08 05:28:26
【问题描述】:
我正在尝试按名称在 <p> 内选择 <div>,但它返回 0 个结果。相同类型的选择适用于<input> 和<span>,但不适用于<select> 和<div>。下面的代码演示了我的意思:
<html>
<head>
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
</head>
<body>
<p id="foo">
<input type="text" name="tl-label" />
<select name="tl_type">
<option value="select_type">Select type</option>
<option value="field">Field</option>
<option value="text">Text label</option>
<option value="flag_set">Flag set</option>
</select>
<span name="manip-links">
<a name="move_up" href="#">[move up]</a>
<a name="move_down" href="#">[move down]</a>
<a name="delete" href="#">[delete]</a>
</span>
<div name="field-params">
field params
</div>
<div name="text-params">
text params
</div>
<div name="flag-set-params">
flag set params
</div>
</p>
</body>
<script type="text/javascript" language="JavaScript">
<!--
var foo = $('#foo');
foo.tl_label = foo.find('input[name=tl-label]');
foo.tl_type = foo.find('select[name=tl-type]');
foo.manip_links = foo.find('span[name=manip-links]');
foo.field_params = foo.find('div[name=field-params]');
foo.text_params = foo.find('div[name=text-params]');
foo.flag_set_params = foo.find('div[name=flag-set-params]');
$('body').append('<p>' +
'tl_label: ' + foo.tl_label.size() + '<br/>' +
'tl_type: ' + foo.tl_type.size() + '<br/>' +
'manip_links: ' + foo.manip_links.size() + '<br/>' +
'field_params: ' + foo.field_params.size() + '<br/>' +
'text_params: ' + foo.text_params.size() + '<br/>' +
'flag_set_params: ' + foo.flag_set_params.size() + '<br/>' +
'</p>');
//-->
</script>
</html>
在底部附加的痕迹读取(在 Firefox 3.5.6 中):
tl_label: 1
tl_type: 0
manip_links: 1
字段参数:0
文本参数:0
flag_set_params: 0
他们都应该读 1. 我错过了什么?
【问题讨论】:
-
您可能应该选择破折号 (
-) 或 下划线 (_) 作为单词分隔符,因为同时使用两者似乎会让您感到困惑。
标签: javascript jquery html jquery-selectors