JQuery найти Div или выбрать по имени, возвращая 0 результатов - PullRequest
1 голос
/ 08 февраля 2010

Я пытаюсь выбрать <div> внутри <p> по имени, но он возвращает 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
Ручные ссылки: 1
field_params: 0
text_params: 0
flag_set_params: 0

Они все должны прочитать 1. Что мне не хватает?

1 Ответ

4 голосов
/ 08 февраля 2010

В вашем коде вместо имен подчеркивания есть тире вместо подчеркивания. (Или знак подчеркивания вместо тире в имени элемента "select"; один или другой: -)

Кроме того, элементы div не могут иметь атрибута name, я не думаю. Используйте «id» и выберите «#whwhat».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...