Функция jquery hide и show не работает

На основании ответа Имрана Раны здесь приведен общий метод многократного использования, если вам нужно применить StyleSpan s к нескольким TextView s, с поддержкой нескольких языков (где индексы являются переменными):

void setTextWithSpan(TextView textView, String text, String spanText, StyleSpan style) {
    SpannableStringBuilder sb = new SpannableStringBuilder(text);
    int start = text.indexOf(spanText);
    int end = start + spanText.length();
    sb.setSpan(style, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textView.setText(sb);
}

Используйте его в Activity следующим образом:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    StyleSpan boldStyle = new StyleSpan(Typeface.BOLD);
    setTextWithSpan((TextView) findViewById(R.id.welcome_text),
        getString(R.string.welcome_text),
        getString(R.string.welcome_text_bold),
        boldStyle);

    // ...
}

strings.xml

<string name="welcome_text">Welcome to CompanyName</string>
<string name="welcome_text_bold">CompanyName</string>

Результат:

Добро пожаловать в CompanyName

0
задан user9708733 13 July 2018 в 18:10
поделиться

3 ответа

Вам нужно использовать $(this).parents('.job'), поскольку оба элемента являются дочерними элементами <div class="job">, и вы хотите показать только тот, который вы нажали на

$(".job_link").click(function(){
    $(this).parents('.job').find(".start_hidden").show();
});
1
ответ дан Seva Kalashnikov 17 August 2018 в 12:17
поделиться
  • 1
    Родитель .job-link является <h2>. Возможно, вы захотите сделать $(this).closest('.job').find( ... ). – Tyler Roper 13 July 2018 в 18:16
  • 2
    @TylerRoper, вы правы, сэр. Изменил его на parents('.job'), который предположил бы работать одинаково – Seva Kalashnikov 13 July 2018 в 18:18
  • 3
    .parents() будет работать в этом сценарии, единственное отличие заключается в том, что parents() выберет все родительские элементы, которые удовлетворяют селектору, поэтому, если бы были вложенные .job элементы (маловероятные), вы могли бы запутаться. closest() обычно немного безопаснее, когда вы знаете, что вам нужен только элемент one :) В любом случае, хороший ответ. +1 – Tyler Roper 13 July 2018 в 18:20
  • 4
    отличное решение, как показать по одному будет моим следующим вопросом, спасибо! – user9708733 13 July 2018 в 18:22
$("start_hidden").show();

изменить на

$(".start_hidden").show();
1
ответ дан colorgreen 17 August 2018 в 12:17
поделиться
  • 1
    такое простое изменение, которое я бы буквально никогда не поймал, спасибо! – user9708733 13 July 2018 в 18:11
  • 2
    Это будет show все элементы с классом start_hidden, если на странице будет несколько. – Seva Kalashnikov 13 July 2018 в 18:12

Вам не хватает класса

 $(".start_hidden").show();
0
ответ дан whoami 17 August 2018 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: